【问题标题】:how to read an array value from another array in php?如何从php中的另一个数组中读取一个数组值?
【发布时间】:2015-02-28 16:50:38
【问题描述】:

有没有办法从另一个数组中读取?

这是我的 2 数组,

$productArr = [
    "PT" => [
        "cat" => [ "image" => "cat.jpg", "desc" => "blah blah"],
        "fish"=> [ "image" => "fish.jpg", "desc" => "blah blah"],
        "dog" => [ "image" => "dog.jpg","desc" => "blah blah"],
    ],
    "KC" => [
        "Ice" => [ "image" =>   "ice.jpg", "desc" => "mah mah mah"],
        "cold"=> [ "image" => "cold.jpg", "desc" => "mah mah mah"],
        "water"=> [ "image" =>   "water.jpg", "desc" => "mah mah mah"],
    ],

];

$featuredArr = [
    "KC" => "Ice",
    "PT" => "cat",
];

例如,从$featuredArr,“Ice”将与$productArr“Ice”链接,生成“desc”和“image”。

【问题讨论】:

  • 只需将该值用作键,它们无论如何都存在于另一个上,如果您想要检查,只需添加一个 isset 或数组键是否存在,检查下面的答案

标签: php arrays multidimensional-array foreach


【解决方案1】:
$productArr = [
    "PT" => [
        "cat" => [ "image" => "cat.jpg", "desc" => "blah blah"],
        "fish"=> [ "image" => "fish.jpg", "desc" => "blah blah"],
        "dog" => [ "image" => "dog.jpg","desc" => "blah blah"],
    ],
    "KC" => [
        "Ice" => [ "image" =>   "ice.jpg", "desc" => "mah mah mah"],
        "cold"=> [ "image" => "cold.jpg", "desc" => "mah mah mah"],
        "water"=> [ "image" =>   "water.jpg", "desc" => "mah mah mah"],
    ],

];

$featuredArr = [
    "KC" => "Ice",
    "PT" => "cat",
];

foreach ($featuredArr as $key => $value) {
   if ($productArr[$key][$value]) {
      echo "key $key=>$value exists:  <br />";
      foreach ($productArr[$key][$value] as $newKey => $newValue) {
         echo "$newKey :: $newValue <br />";
      }
   }
}

输出:

key KC=>Ice exists:  <br />image :: ice.jpg <br />desc :: mah mah mah <br />key PT=>cat exists:  <br />image :: cat.jpg <br />desc :: blah blah <br />

请注意,这在很大程度上取决于您对键和值的用途:使用上面的代码,您可以通过将所需的键=>值对添加到 $featuredArr 数组来动态循环遍历您的数组。

希望这会有所帮助。

【讨论】:

  • 我在回显图像时遇到问题,您有解决方案吗?
  • 什么问题?回显图像或正确显示它?打印标签时一定要检查图像的确切路径。
【解决方案2】:

试试这个:

foreach($featuredArr as $key=>$val)
    if($productArr[$key][$val])
        print_r($productArr[$key][$val]);

【讨论】:

    【解决方案3】:

    使用这个:

    $code = "KC";
    $product = $productArr[$code][$featuredArr[$code]];
    echo $product['image'];
    echo $product['desc'];
    

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 2013-06-18
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多