对数组中的一些值进行分组[重复]

问题描述 投票:0回答:3

如何根据值“cat”以分组方式显示该数组?

我的阵列:

$options = array(
    array("cat" => "Impresoras","nameProd" => "Impresora 4"),
    array("cat" => "Destructoras","nameProd" => "Destructora 3"),
    array("cat" => "Impresoras","nameProd" => "Impresora 8"),
    array("cat" => "Destructoras","nameProd" => "Destructora 5")
);

我需要打印:

Impresoras: Impresora 4, Impresora 8
Destructoras: Destructora 3, Destructora 5
php arrays multidimensional-array concatenation grouping
3个回答
1
投票

试试这个

  $options  = array(
    array("cat" => "Impresoras","nameProd" => "Impresora 4"),
    array("cat" => "Destructoras","nameProd" => "Destructora 3"),
    array("cat" => "Impresoras","nameProd" => "Impresora 8"),
    array("cat" => "Destructoras","nameProd" => "Destructora 5")
  );

  foreach ($options as $key => $value) {    
    $nArray[$value['cat']][] =  $value['nameProd'];      
  }
  foreach ($nArray as $key => $value) {
    echo $key.":".implode(",", $value)."<br>";
  }

输出

Impresoras:Impresora 4,Impresora 8
Destructoras:Destructora 3,Destructora 5

1
投票

使用

cat
作为键创建一个新数组。像这样的;

$grouped_categories = array();
foreach ( $options as $option ) {
    $grouped_categories[$option['cat']][] = $option['nameProd'];
}

这将输出类似的内容;

[
    'Impresoras' => ['Impresora 4', 'Impresora 8']
    'Destructoras' => [...]
]

如何输出该数组取决于您。


0
投票
    $data = [];
    $options = array(
        array("cat" => "Impresoras", "nameProd" => "Impresora 4"),
        array("cat" => "Destructoras", "nameProd" => "Destructora 3"),
        array("cat" => "Impresoras", "nameProd" => "Impresora 8"),
        array("cat" => "Destructoras", "nameProd" => "Destructora 5")
    );

    foreach ($options as $key => $value) {
        $data[$value['cat']][] = $value['nameProd'];
    };
© www.soinside.com 2019 - 2024. All rights reserved.