繁体   English   中英

PHP动态嵌套关联数组

[英]PHP Dynamic Nested Associative Array

我有一个关联数组,它是使用数据库中的值动态生成的。 当我打印整个数组时,当我们放置print_r($ array)时,它会给出类似的内容。

  Array ( [95a5c80811239526fb75cbf31740cc35] => Array ( [product_id] => 2324) )

当我这样回声时

echo $array['95a5c80811239526fb75cbf31740cc35']['product_id'];

它给了我产品编号。 但是问题是,代码“ 95a5c80811239526fb75cbf31740cc35”每次都会动态更改。 无论该代码如何,我都想回显产品ID。

我试过了

$array[]['product_id'];
$array['']['product_id'];

但是没有用。 谁能帮我? 请问我是否有任何疑问。

在这种情况下,可以使用reset()

$array = array(
    '95a5c80811239526fb75cbf31740cc35' => array( // dynamic
        'product_id' => 2324
    ),
);

$value = reset($array); // set pointer to first element
echo $value['product_id']; // 2324

假设代码始终是数组中的第一个元素:

$array[0]['product_id'];

如果您集体希望获得所有产品ID:

foreach($array as $product){
    $productIds[] = $product['product_id'];
}

// $productIds is now what $array was, but without the codes, so the product_id's are the first elements.

您可以为此使用每个,以便获得产品ID的值

 $array = Array ( [95a5c80811239526fb75cbf31740cc35] => Array ( [product_id] => 2324) )

foreach($array as $product){
echo $product['product_id'];
}

这将获得您想要的o / p

根据您的情况,有几种可能的解决方案:

$array = array_shift(array_values(
  Array(
    '95a5c80811239526fb75cbf31740cc35' =>
       Array(
          'product_id' => 2324
       )
    )));

echo $array['product_id']; // 2324

另一种解决方案,可能更有效:

echo array_shift(array_slice($array, 0, 1)); // 2324

对于PHP 5.4+,您可以使用:

echo array_values($array)[0]; // 2324

如果您在使用关联数组时遇到问题,则可以先将其转换为数值,如下所示

    $arr=array( 'first' => array( 'product_id' => 2324) );
    $arrr=array_values($arr);
     echo $arrr[0]['product_id'];

输出:

2324

希望对您有所帮助,并了解有关array_values的信息

$array[0]['product_id'];

应该做到的。

暂无
暂无

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

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