[英]PHP. Sort array element on top by key
$key = "cat"
$array = array( dog,
bird,
cat,
moon );
需要这样的命令(通过键): 猫,狗,鸟,月亮。
$ key =“ cat” ,因此字符串“ cat”必须是数组的第一个元素。 怎么做?
您实际上并没有进行排序,只是将数组中的某些内容移到了开头。 它可能更简单,但这是一种方法:
array_unshift($array, current(array_splice($array, array_search($key, $array), 1)));
array_search()
查找包含$key
的元素的索引 array_splice()
删除该元素 array_unshift()
将元素添加到数组中 以上所有解决方案都可以在提供的输入数组中正常工作
$array = array('dog','bird', 'cat','moon');
但是,如果输入数组处于关联数组中,则上述解决方案将不起作用。 请参阅下面更改后的输入数组:
$array = array('frist' => 'foo', 'dog','bird', 'cat','moon', 'cat');
为了提高性能,可以使用以下功能。 它没有调用太多内置PHP数组函数的开销。 而且,它将同时作用于顺序和关联的PHP数组。 请参见下面的代码段:
function moveToTop($array, $key){ foreach ($array as $index => $value) ($value != $key) ? $newArray[$index] = $value : ''; array_unshift($newArray, $key); return $newArray; }
moveToTop($array, $key)
Array ( [0] => cat [frist] => foo [1] => dog [2] => bird [3] => moon )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.