Php 重新排列数组
我在提交表单时获得此数组Php 重新排列数组,php,arrays,Php,Arrays,我在提交表单时获得此数组 array 'item' => array 0 => string 'Salt' 1 => string 'Pepper' 'quantity' => array (size=2) 0 => string '2 spoon' 1 => string '5' 现在我们要重新排列上面的数组,所以它应该是 array '0' => array
array
'item' =>
array
0 => string 'Salt'
1 => string 'Pepper'
'quantity' =>
array (size=2)
0 => string '2 spoon'
1 => string '5'
现在我们要重新排列上面的数组,所以它应该是
array
'0' =>
array
'item' => string 'Salt'
'quantity' => string '2 spoon'
'1' =>
array
'item' => string 'Pepper'
'quantity' => string '5'
我尝试了很多组合,但都失败了,有人能帮我重新排列这个数组吗。任何帮助都将不胜感激。希望您的数组存储在
$array
变量中,并且项处于前导。这意味着数组中始终存在一个项,而不总是数量
<?php
foreach($array['item'] as $key => $item) {
$newArray[$key]['item'] = $item;
if (isset($array['quantity'][$key]) {
$newArray[$key]['quantity'] = $array['quantity'][$key];
} else {
$newArray[$key]['quantity'] = 0;
}
?>
试试这个,我想这会对你有帮助
$a = array(
'item' =>
array(
0 => 'Salt',
1 => 'Pepper'),
'quantity' =>
array(
0 => '2 spoon',
1 => '5')
);
$i = 0;
foreach($a['item'] as $row){
$b[$i]["item"] = $row;
$b[$i]["quantity"] = $a['quantity'][$i];
$i++;
}
print_r($b);
print\r()
的输出将是
Array
(
[0] => Array
(
[item] => Salt
[quantity] => 2 spoon
)
[1] => Array
(
[item] => Pepper
[quantity] => 5
)
)
按下面的方法做-
<?php
$arr=array(
'item' =>
array(
0 => 'Salt' ,
1 => 'Pepper'
),
'quantity' =>
array (
0 =>'spoon',
1 =>'5'
)
);
$result=array();
$com=array_combine($arr['item'],$arr['quantity']);
foreach($com as $k=>$v)
{
$result[]=array("item"=>$k,"quantity"=>$v);
}
print_r($result);
?>
试试这个
$array = array(
'item' =>
array(
0 => 'Salt',
1 => 'Pepper'),
'quantity' =>
array(
0 => '2 spoon',
1 => '5')
);
$new_array = array();
foreach ($array['item'] as $key => $value) {
$new_array[$key]["item"] = $value;
$new_array[$key]["quantity"] = $array['quantity'][$key];
}
echo "<pre>";
var_dump($new_array);
$array=array(
'项目'=>
排列(
0=>“盐”,
1=>“胡椒”),
“数量”=>
排列(
0=>“2匙”,
1 => '5')
);
$new_array=array();
foreach($key=>$value的数组['item']as$key){
$new_数组[$key][“item”]=$value;
$new_数组[$key][“quantity”]=$array['quantity'][$key];
}
回声“;
变量转储(新数组);
您可以简单地使用array\u walk
如下
让我们看看你在问题中尝试了什么。什么形式?请在您的问题中提供更多详细信息您为什么使用计数器?@AgeDeO为什么不使用?需要连接的元素在不同数组中共享相同的索引:PYou可以使用数组的键(顺便说一句;)@在任何地方,它都不是一个额外的变量,当键在数组中确实有意义时(你不知道它们没有意义),代码将中断,而不是使用函数,foreach只需使用foreach
yep@Uchiha,我很快就意识到了这一点……我并没有删除,因为我刚刚展示了一个备选方案:)仍然输出前两个元素如果数组中有两个以上的元素,请检查是否根据您的要求更新@Adnan
$array = array(
'item' =>
array(
0 => 'Salt',
1 => 'Pepper'),
'quantity' =>
array(
0 => '2 spoon',
1 => '5')
);
$new_array = array();
foreach ($array['item'] as $key => $value) {
$new_array[$key]["item"] = $value;
$new_array[$key]["quantity"] = $array['quantity'][$key];
}
echo "<pre>";
var_dump($new_array);
$result = [];
array_walk($arr['item'], function($v, $k)use(&$result, $arr) {
$result[$k]['item'] = $arr['item'][$k];
$result[$k]['quantity'] = $arr['quantity'][$k];
});
print_r($result);