1

我有一个php数组如下,

<?php
    $arr = array('op'=>'pqr', 'ab'=>'xyz', 'mn'=>'abcd');

?>

xyz如果值存在,如何将值设置为具有最小循环的第一个元素。

预期结果

<?php
    $arr = array('ab'=>'xyz', 'op'=>'pqr','mn'=>'abcd');
?>
4

2 回答 2

4
$ab = $array['ab'];
unset($array['ab']);
$array = array('ab' => $ab) + $array;

如果密钥本身未知,请先找到它:

$key = array_search('xyz', $array);
$tmp = $array[$key];
unset($array[$key]);
$array = array($key => $tmp) + $array;

或进行排序:

uasort($array, function ($a, $b) {
    if ($a == 'xyz') return -1;
    if ($b == 'xyz') return 1;
    return 0;
});
于 2012-07-05T06:08:48.230 回答
-1
<?php
    $arr = array('op'=>'pqr', 'ab'=>'xyz', 'mn'=>'abcd');
    ksort($arr);
    echo '<pre>';
    print_r($arr);
于 2012-07-05T06:09:04.643 回答