繁体   English   中英

如何获取 PHP 中数组的每个值?

[英]How can I get each value of array in PHP?

我得到一个端点,它采用数据库的一些产品。

那个端点带来了一个 JSON,它看起来像这样:

idProduct   
  0 => "21"
colour  
  0 => "Red"
  1 => "Green"
size    
  0 => "M"
  1 => "XS"

所以,我需要制作一个表格,显示colour[0]size[0]colour[1]size[1]等。

主要问题是我无法通过列的名称(大小和颜色)访问,因为在另一种情况下,名称可以是能力、可能、黑暗等。

我试过这个但不起作用。

echo '<tbody>';
foreach ($array_from_json as $key => $value) {
  for ($i=0; $i <= count($value) ; $i++) { 
    echo "<tr><td>".$value[$i]."</td></tr>";
  }
}
echo '</tbody>';

数组 ($array_from_json) 在 var_dump 中显示了这一点:

array(3) { ["idProducto"]=> array(1) { [0]=> string(1) "9" } ["color"]=> array(2) { [0]=> string(4) "Azul" [1]=> string(5) "Verde" } ["talla"]=> array(2) { [0]=> string(1) "L" [1]=> string(2) "XL" } }

JSON 原始文件为: {"idProducto":["9"],"color":["Azul","Verde"],"talla":["L","XL"]}

你可以这样做:

您可以使用array_keys function 获取列名,您必须删除第一个列名“idProducto”(因为您不想迭代它)。 无论您选择什么列名,此代码都将起作用。

输入数据(json):

$json = '{"idProducto":["9"],"color":["Azul","Verde"],"talla":["L","XL"]}';

Php 代码:

$product = json_decode($json, true); //Convert a Json string to array

$keys = array_keys($product); //Get arrays keys

array_shift($keys); //Delete first key "idProducto"

echo '<table>';

for($i = 0; $i < count($product[$keys[0]]); $i++) {
    
    echo '<tr>';
    
    foreach($keys as $key) {        
        echo '<td>' . $product[$key][$i] . '</td>';
    }
    
    echo '</tr>';
}
echo '</table>';

Output(不带表头,但可以在开头加上foreach):

颜色 塔拉
阿祖尔 大号
佛得角 特大号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM