【问题标题】:How to replace array keys with predefined values如何用预定义的值替换数组键
【发布时间】:2011-12-02 23:06:10
【问题描述】:

假设我有以下情况:

我有一个这样的数组:

$array = array(1 => "text1",2 => "text2", 3 => "Text3" , 4 => "Text4");

在一些函数之后,我收到一个包含这些值的字符串:

$string = "2,1,4,3"; // this values are dynamic 

我想要实现的是按字符串的顺序对该数组($array)进行排序;所以结果应该是:

<--- some function --- > 
$result = array(2 => "text2",1=> "text1",4=>"Text4",3=>"Text3"));

【问题讨论】:

  • 请不要告诉我您是从数据库中获取这些动态值的。
  • 不,这是自定义函数随机接收的......谢谢

标签: php arrays sorting key


【解决方案1】:
$keyArr = explode(',', $string);
$sortedArr = array();

foreach ($keyArr as $key)
{
    $sortedArr[$key] = $array[$key];
}

【讨论】:

    【解决方案2】:

    PHP 的 array_multisort() 函数 - http://php.net/manual/en/function.array-multisort.php

    未经测试,但可能类似于:

    array_multisort(explode(",", $string), $array);
    

    但钥匙可能会丢失。

    【讨论】:

      【解决方案3】:
      1. 使用explode 将字符串分解为索引
      2. 创建一个空数组$result
      3. 遍历展开的键数组,执行$result[$key] = $input[$key]

      See it in action.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-28
        • 2018-09-25
        • 2018-05-22
        • 2012-01-02
        • 2020-02-14
        • 2023-02-20
        • 1970-01-01
        相关资源
        最近更新 更多