PHP使用foreach在数组中更改顺序

时间:2018-10-18 18:03:33

标签: php

$fruit = array(0 => "Lemon", 1 => "Apple");
$order = array(0 => "no1", 1 => "no2");
$new_array = array();
foreach ($order as $index) {
    $new_array[$index] = $fruit[$index];
}
print_r($new_array);

它显示:

Notice: Undefined index: no1 in C:\xampp\htdocs\jobs.php on line 6
Notice: Undefined index: no2 in C:\xampp\htdocs\jobs.php on line 6

我该怎么办? 谢谢:)

2 个答案:

答案 0 :(得分:2)

您应该使用PHP(see PHP Docs)中可用的array_combine()函数:

  

“ array_combine —通过使用一个数组作为键和   另一个价值”

$fruit = array(0 => "Lemon", 1 => "Apple");
$order = array(0 => "no1", 1 => "no2");
$new_array = array_combine($order, $fruit);
print_r($new_array);
  

//输出:数组([no1] =>柠檬[no2] =>苹果)

工作示例:https://3v4l.org/rW71r

答案 1 :(得分:0)

要实现此目的,您需要使用循环键并使用它来取得成果,请记住,如果像上面一样不存在该键,您将得到通知。

$fruit = array(0 => "Lemon", 1 => "Apple");
$order = array(0 => "no1", 1 => "no2");
$new_array = array();
foreach ($order as $key => $index) {
    $new_array[$index] = $fruit[$key];
}
print_r($new_array);