如何使用 foreach 从 PHP 中的关联数组输出特定数据

How can I output specific data from an associative array in PHP with 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
);

假设我想像这样输出所有产品数组的名称:

Red Shirt, Black Shirt, Blue Shirt

如何使用 foreach 循环实现该目的?我试图一次只输出所有数组中的特定键,但如果不输出所有键,我似乎无法做到这一点。

还可以说我只想输出某个数组的 "price",例如 $products[103],我该如何实现?

谢谢!

你可以使用下面的代码,使用 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);

会return

Array ( [0] => Red Shirt [1] => Black Shirt [2] => Blue Shirt )

如果这对你有帮助,请告诉我

简单,这样用

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

试试这个

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

试试这个

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

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

如果有任何问题,请告诉我。

试试下面的代码(这将涵盖所有场景):

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
$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

您将获得与此代码所希望的完全相同的输出

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

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

输出:

Red Shirt, Black Shirt, Blue Shirt