没有键的数组显示

时间:2017-01-18 14:50:26

标签: php arrays

我正在尝试显示没有关键项的数组。只想显示没有键的数组值。 这是我试过的示例代码

$myList = array(
        0 =>array(
                "product_id"=> 8085
            ),
         1 =>array(
                "product_id"=> 8087
            ),
          2 =>array(
                "product_id"=> 8086
            ),
           3 =>array(
                "product_id"=> 8042
            ),
        );


  $newList = array();
foreach($myList as $listItem) {
    $newList[] = $listItem['product_id'];
}
$a=array();
$a= array_values($newList);
print_r($a);

我想要这样的数组

$productIds = array(8085,8087,8086,8042);

以下是我的示例代码link

3 个答案:

答案 0 :(得分:1)

您正在寻找array_column(自PHP 5.5起可用):

$productIds = array_column($myList, 'product_id');

这会给你:

var_export($productIds);

array (
  0 => 8085,
  1 => 8087,
  2 => 8086,
  3 => 8042,
)

这正是你想要的:

var_dump($productIds === array(8085,8087,8086,8042)); // bool(true)

答案 1 :(得分:1)

数组总是有键。如果你想要一个数组,你可以得到所有的值,把它们变成一个逗号分隔的字符串,然后把它放到一个数组中:

$productIds = [implode(',', array_column($myList, 'product_id'))];
var_dump($productIds);

// RESULT:
// array (size=1)
//   0 => string '8085,8087,8086,8042' (length=19)

答案 2 :(得分:0)

print_r函数将输出密钥。即使你使用array_values,数组仍然有索引作为键。

只需使用echoimplode手动输出数组(implode将使用第一个参数字符将数组值连接成一个字符串):

echo implode(',', $newList);