php中的逻辑和数组排序

时间:2011-11-04 15:05:50

标签: php arrays search indexing

enter image description here

我正在尝试将这个逻辑集成到我的脚本中,但我无法抓住这个或者找到任何可以执行此操作的搜索功能。

我正在尝试创建一个代码片段,按照$ onca的值排列数组。 $ onca是一个随机变化的变量,其可能的值由数组$ oncMail中的元素组成。每次$ onca更改为新值我希望数组通过获取数组中新变量的位置并使用旧值的位置交换它来自动排序,以便新值成为数组中的第1个和旧值转到旧值数组中的索引位置。为了更有意义,我附上了逻辑过程的图片。

2 个答案:

答案 0 :(得分:0)

每当$onca的值发生变化时,请使用array_search查找相应的元素并将其与第一个元素交换:

$array = range(0, 10);
$onca = 3;

print_r($array); // starting array
$key = array_search($onca, $array, true);
reset($array); // so that key() below works as intended, no questions asked
$firstKey = key($array);
if ($key !== false && $key !== $firstKey) {
    $temp = $array[$firstKey];
    $array[$key] = $temp;
    $array[$firstKey] = $onca;
}
print_r($array); // final array

<强> See it in action

答案 1 :(得分:0)

这是一种方法:

$emails = array('me@you.com', 'you@here.com', 'to@from.com', 'there@further.com');
$email = 'to@from.com';
$idx = array_search($email, $emails);
$emails = array_merge(array($email), 
                      array_slice($emails, 0, $idx), 
                      array_slice($emails, $idx+1));