【问题标题】:How can I replace my array key to value in other key?如何将我的数组键替换为其他键中的值?
【发布时间】:2015-03-08 04:35:31
【问题描述】:
array(22) {
  [0]=>
  array(5) {
    ["name"]=>
    string(33) "White shirt - blue logo"
    ["price"]=>
    string(5) "10.00"
    ["img"]=>
    string(5) "2.jpg"
    ["text"]=>
    string(865) "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
    ["url"]=>
    string(26) "voltarity-white-red-shirt2"
  }
another array...
another array...
}

所以我想将我的数组键 [0] 更改为我在 ["url"] 中的值,可以吗? 顺便说一句,该数组是从 mysql 数据库创建的。

【问题讨论】:

    标签: php mysql arrays replace key


    【解决方案1】:

    只需使用“url”作为键创建一个新的关联数组。

    $newArray = [];
    foreach ($oldArray as $row) {
        $newArray[$row['url']] = $row;
    }
    

    显然,如果您有 2 行具有相同的 'url' 值,则第二行将覆盖第一行。如果您需要允许多行具有相同的 'url' 值,则可以使用此循环。

    $newArray = [];
    foreach ($oldArray as $row) {
        if (isset($newArray[$row['url']]) {
            if (is_array($newArray[$row['url']])) {
                $newArray[$row['url']][] = $row;
            } else {
                $newArray[$row['url']] = array($newArray[$row['url']], $row);
            }
        } else {
            $newArray[$row['url']] = $row;
        }
    }
    

    【讨论】:

    • 您可以扩展它以便不会发生覆盖:$newArray[$row['url']][] = $row -- 但您还必须准备好处理这个多维数组。
    猜你喜欢
    • 2014-05-05
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多