PHP动态嵌套关联数组

时间:2014-07-11 07:46:44

标签: php arrays

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

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

当我这样回声时,

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

它给了我产品ID。 但问题是,代码&#;; 95a5c80811239526fb75cbf31740cc35'每次动态变化。无论此代码如何,我都希望回显产品ID。

我试过

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

但不行。谁能帮我?如果您有任何疑问,请问我。

6 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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

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

这会得到你想要的o / p

答案 3 :(得分:1)

根据您的具体情况,几乎没有可能的解决方案:

$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

答案 4 :(得分:1)

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

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

输出:

2324

希望这有助于了解array_values go here

答案 5 :(得分:-1)

$array[0]['product_id'];

应该做的伎俩。