【问题标题】:PHP: How to make changes to the order of key-value-pairs in arrays?PHP:如何更改数组中键值对的顺序?
【发布时间】:2015-02-02 19:38:06
【问题描述】:

好的,我的问题来了:以下代码以数组$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

【问题讨论】:

    标签: php arrays sorting foreach key


    【解决方案1】:

    好吧,也许这次答案很简单:

    ksort($a);
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • @NKN 他是这个问题的作者 :-) 但我同意,答案不是很清楚。
    • 为什么不呢。我已经通过提供代码来完成我的要求来回答我的问题。当然,答案之所以有效,只是因为我们知道原始数组中的键是已排序的,否则手头的任务将涉及猜测工作,因此就问题而言是不可能的。
    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 2019-07-16
    • 2011-12-03
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多