2017-09-08 34 views
1

我有一个数组$ myArray的PHP移阵列元件

Array ([0] => Apple [1] => Orange [2] => Grape [3] => Plum) 

这个阵列被动态提取,但我需要阵列含量是在一个特定的顺序。例如葡萄永远是第一位,梅花永远是第二,苹果将永远是第三和橙色将需要最后

Array ([0] => Grape [1] => Plum [2] => Apple [3] => Orange) 

而且可以说,当这个被动态地进行,也没有“葡萄”梅花需要先成为苹果,橙子。前

Array ([0] => Plum [1] => Apple [2] => Orange) 

我不知道这是如何在PHP做

+1

如果这是一个自定义排序逻辑,我们别无选择,而是使用自定义代码来实现它。否则,请更好地解释你想达到什么,也许用更现实的例子 – Calimero

+0

如果你想要这样一个特定的顺序,你必须知道会有什么值。 Jus根据值的顺序创建一个数组,循环结果数组并与顺序数组进行比较。 – Michel

+0

[我如何在PHP中对数组和数据进行排序?](https://stackoverflow.com/questions/17364127/how-can-i-sort-arrays-and-data-in-php),特别是*排序成手动,静态订单* – iainn

回答

0

你只是在找这个? http://php.net/array_shift

否则,如果你想设置一个特定的指数,只是做这样的:

$myArray = []; 
$myArray[2] = new Plum(); 

这将设置你的数组的索引2(3元)。

0

让我们说你的阵列是

$array = array(); 

,你是把入阵的值是$水果和水果$变化。只是做

array_push($array,$fruit) 

如果$ furits之际,

$fruits = "Grape"; 
$fruits = "Plum"; 
$fruits = "Apple"; 
$fruits = "Orange"; 

,如果你有一个循环

$array[0] = "Grape"; 
$array[1] = "Plum"; 
$array[2] = "Apple"; 
$array[3] = "Orange"; 

,但如果在一个循环,你的用户array_push与array_push $水果作为

$fruits = "Plum"; 
    $fruits = "Apple"; 
    $fruits = "Orange"; 

你得到

$array[0] = "Plum"; 
    $array[1] = "Apple"; 
    $array[2] = "Orange"; 

我想这就是你正在尝试做

2
$array = array('Apple', 'Orange','Grape','Plum'); 
// order of array 
$order = array('Grape', 'Plum', 'Apple','Orange'); 
// testing no 'Grapes' 
$array2_missing = array('Apple', 'Orange','','Plum'); 


$result = array_intersect($order, $array); 
print_r($result); 

Output: Array ([0] => Grape [1] => Plum [2] => Apple [3] => Orange) 
Output2 : Array ([1] => Plum [2] => Apple [3] => Orange)