2015-03-02 22 views
0

我有一个索引数组如下改变数组索引客户订单PHP

$item = array("one","two","three","four"); 

我需要改变这个数组的索引与另一个阵列

$indexarray = array("2","0","3","1"); 

分配新国际展览中心至$项数组像这样,

one ---> 2 
two ---> 0 
three ---> 3 
four ---> 1 

所以所需的结果阵列应该是这样的

$item = array("two","four","one","three"); 

我怎样才能做到这一点,请帮助

+0

这是数组(“2”,“0”,“3”,“1”);还是数组(2,0,3,1);? – Niols 2015-03-02 10:35:49

回答

3
Use: 

$c=array_combine($indexarray ,$item); 
print_r($c); 
1

使用此

$indexarray = array("2","0","3","1"); 
$item = array("one","two","three","four"); 
$result=array_combine($indexarray ,$item); 
print_r($result); 
0
<?php  
    $item = array("one","two","three","four"); 
    $indexarray = array("2","0","3","1"); 
    $item_new=array(); 
    foreach($indexarray as $key=>$value) 
    { 
     $item_new[$key]=$item[$value]; 
    } 
    $item=$item_new; 
    print_r($item); 
?> 
+0

上面的解决方案没有给你想要的结果吗? – TECHNOMAN 2015-03-02 10:50:17

+0

虽然这个答案可能是正确和有用的,但是如果你在解释这个问题的时候加入一些解释来解释它是如何帮助解决这个问题的话,那么这是首选。如果存在导致其停止工作并且用户需要了解其曾经工作的变化(可能不相关),这在未来变得特别有用。 – 2015-03-02 22:55:17

+0

据我所知,@johnson希望按照数组“indexarray”中定义的值的顺序显示数组“item”。所以更新后的第一个项目数组是$ item [2],$ item [0],$ item [3],$ item [1]。让我知道如果我错了 – TECHNOMAN 2015-03-03 05:05:35

0

首先结合两种阵列

$item = array("one","two","three","four"); 
$indexArray = array("2","0","3","1"); 

$tempArray = array_combine($indexArray, $item); 

然后排序数组

ksort($tempArray);