2015-01-09 66 views
1
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

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

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

显然,如果你有与“URL”相同的值2行的第二排将覆盖第一行。如果您需要允许多行具有相同的'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; 
    } 
} 
+1

你可以扩展这使改写不会发生:'$ newArray [$行] [“网址”] [] = $ row' - 但你也必须做好应对这种multidim阵列。 – 2015-01-09 19:28:25

相关问题