我在php循环中遇到问题。
也许有更好的方法可以做到这一点。目前我的post
正在返回
array(4) {
[1]=> string(2) "on"
["1-qty"]=> string(1) "1"
[5]=> string(2) "on"
["5-qty"]=> string(1) "9"
}
我正在尝试制作一个由2个阵列组成的新阵列,例如下面的
array(2) {
array(2) {
[category]=> string(2) "1"
["qty"]=> string(1) "1"
}
array(2) {
[category]=> string(2) "5"
["qty"]=> string(1) "9"
}
}
我试过每一个前臂和for循环,我能设法把它们组合在一起。主要问题是我需要的第一个值是键,而不是第一个数组的值。然后,我需要从主数组中取出前两个数组,并将其添加到一个新数组中,其中第一个数组关键字是数组中第一个关键字类别的新值,第二个数组的值是数组中新关键字数量的值,并对post
变量中的每个集合按2组重复
电流回路(不工作)
$data = $this -> input -> post();
$dCount = count($data);
$newCount = $dCount / 2;
$fin = array();
for ($i = 0; $i <= $newCount; $i++) {
$vals = array_slice($data, 0, $i + 1, true);
$qty = array_slice($vals, 0, $i , true);
$key = current(array_keys($qty));
$final = array('category' => $key, 'qty' => $qty[$key . '-qty']);
$fin[] = $final;
}
试试这个方法:
$source_arr = array(1 => "on", "1-qty" => 1, 5 => "on", "5-qty" => "9");
$result_arr = array();
foreach ($source_arr as $key => $value) {
if ($value == "on" && isset($source_arr[$key . "-qty"])) {
$result_arr[] = array(
'category' => $key,
'qty' => $source_arr[$key . "-qty"]
);
}
}