PHP: 如何改变数组中键值对的顺序?
PHP: How to make changes to the order of key-value-pairs in arrays?
好的,那么我的问题来了:下面的代码以数组 $a
开始,然后调用 messUp($a)
。任务是在 大写字母注释所在的位置插入代码 以便调用注释掉的代码,第三个 doOutput($a)
函数产生与第一次调用 doOutput($a)
相同的结果,而没有更改代码中的任何其他内容。我想知道这是否可能。
$a = array(111, 222, 333);
doOutput($a); // output call 1
messUp($a);
doOutput($a); // output call 2
// YOUR ANSWER MUST WORK BY INSERTING CODE HERE AND ONLY HERE
// doOutput($a); // output call 3, to be uncommented
function messUp(&$array) {
$temp = $array[0];
unset($array[0]);
$array[0] = $temp;
}
function doOutput($array) {
foreach ($array as $elementKey => $elementValue) {
echo "Key: ", $elementKey, "\tValue:", $elementValue, "\n";
}
echo "\n";
}
就目前而言,代码从输出调用 1 和 2 输出以下内容:
Key: 0 Value:111
Key: 1 Value:222
Key: 2 Value:333
Key: 1 Value:222
Key: 2 Value:333
Key: 0 Value:111
好的,也许这次的答案很简单:
ksort($a);
好的,那么我的问题来了:下面的代码以数组 $a
开始,然后调用 messUp($a)
。任务是在 大写字母注释所在的位置插入代码 以便调用注释掉的代码,第三个 doOutput($a)
函数产生与第一次调用 doOutput($a)
相同的结果,而没有更改代码中的任何其他内容。我想知道这是否可能。
$a = array(111, 222, 333);
doOutput($a); // output call 1
messUp($a);
doOutput($a); // output call 2
// YOUR ANSWER MUST WORK BY INSERTING CODE HERE AND ONLY HERE
// doOutput($a); // output call 3, to be uncommented
function messUp(&$array) {
$temp = $array[0];
unset($array[0]);
$array[0] = $temp;
}
function doOutput($array) {
foreach ($array as $elementKey => $elementValue) {
echo "Key: ", $elementKey, "\tValue:", $elementValue, "\n";
}
echo "\n";
}
就目前而言,代码从输出调用 1 和 2 输出以下内容:
Key: 0 Value:111
Key: 1 Value:222
Key: 2 Value:333
Key: 1 Value:222
Key: 2 Value:333
Key: 0 Value:111
好的,也许这次的答案很简单:
ksort($a);