如何使用 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
我的关联数组:
$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