如何将我的数组键替换为其他键中的值?

时间:2015-01-09 19:17:43

标签: php mysql arrays replace key

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”]中的值,是否可能? BTW该数组是从mysql数据库创建的。

1 个答案:

答案 0 :(得分:1)

使用' url'创建一个新的关联数组。作为关键。

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

显然,如果你有两行具有相同值的' 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;
    }
}