2015-04-17 50 views
3

我的關聯數組:如何從一個關聯數組輸出特定的數據PHP中的foreach

$products = array(); 
$products[101] = array(
    "name" => "Red Shirt", 
    "img" => "img/shirts/shirt-101.jpg", 
    "price" => 18 
); 
$products[102] = array(
    "name" => "Black Shirt", 
    "img" => "img/shirts/shirt-102.jpg", 
    "price" => 20 
); 
$products[103] = array(
    "name" => "Blue Shirt", 
    "img" => "img/shirts/shirt-103.jpg",  
    "price" => 20 
); 

因此,可以說,我想輸出的所有產品陣列的名稱,像這樣:

紅襯衫,黑襯衫,藍襯衫

我該如何用foreach循環實現呢?我試圖一次輸出所有數組中的特定密鑰,但似乎無法輸出所有密鑰。

也可以說我只想輸出某個數組的「價格」,比如$ products [103]我該如何實現這個目標?

謝謝!

回答

4

您可以使用下面的代碼,用foreach

foreach($products as $pro) 
{ 
    echo $pro['name']; 
} 

上面的代碼將只打印name產品陣列的關鍵

得到的$product['103']價格,你可以使用如下代碼

foreach ($products as $key => $value) 
{ 
    if ($key == '103') 
    { 
     echo $pro['price']; 
    } 
} 

編輯:獲取名稱數組

$names = array(); 
foreach ($products as $pro) 
{ 
    $names[] = $pro['name']; 
} 
print_r($names); 

它將返回

陣列([0] =>紅襯衫[1] =>黑色襯衫[2] =>藍襯衫)

讓我知道如果這有助於你

+0

非常漂亮的感謝一噸,只是好奇,但可以說你想拿到鑰匙與數值類似......「所有數組的名稱」,「紅色襯衫」,「名稱」,「黑色襯衫」,「名稱」,「藍色襯衫」,「如何做到這一點? –

+0

@LucasSantos數組如何具有相同的鍵? 'key'這個詞的意思是它的唯一性...它不能被複制....如果在數組中有相同的命名鍵,它將覆蓋最後的值... –

1

簡單,使用這樣的

foreach($products as $product){ 
    echo $product['name']; 
} 
+0

這很有用,非常感謝! –

0

試試這個

foreach ($products as $prd) { 
     echo $prd['name']; 
} 
+0

感謝您的回答! –

1

試試這個

foreach($products as $key => $val) { 
    // For name 
    echo $val['name']; 

    // For specific product price 
    if($key == 103) { 
     echo $val['price']; 
    } 
} 

讓我知道,如果有任何問題。

+0

不錯,謝謝! –

1

試試下面的代碼(這將覆蓋所有場景)

function getMyArray($key, $arr = array()){ 
    $result = array(); 
    foreach($arr as $arrVal){ 
     $result[] = $arrVal[$key]; 
    } 
    return implode(", ", $result); 
} 

echo getMyArray('name', $products); // Red Shirt, Black Shirt, Blue Shirt 
echo getMyArray('img', $products); //path1, path2, path3 
echo getMyArray('price', $products); // 18, 20, 20 

如果你想要一些特定的值:

echo $products[103]['price']; // 20 
+0

不錯的方式使用函數來破解結果作爲數組 –

+0

感謝您的意見盧卡斯 –

0
$productNames = array(); 
foreach($products as $key=>$product) { 
    $productNames[] = $product['name']; 
} 

//all names with comma 

echo implode(',',$productNames); 
echo "\n"; 

//only price of $products[103] 

echo $products[103]['price']; 

結果:

Red Shirt, Black Shirt, Blue Shirt 
20 
+0

好的替代方法,謝謝你的答案 –

0

你會得到確切同樣的進行,你通過這個代碼

foreach($products as $key=>$result) 
{ 

    echo $result['name'].', '; 
} 

出把希望放:

Red Shirt, Black Shirt, Blue Shirt 
相關問題