2015-01-09 67 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

相關問題