如何删除具有重复列值的子数组? - php

我有一个这样的数组-

Array
(
    [0] => Array
        (
            [size] => 12" x 24"
            [size_description] => <p>Rectified</p>

        )

[1] => Array
    (
        [size] => 12" x 24"
        [size_description] => <p>Rectified</p>

    )

[2] => Array
    (
        [size] => 24" x 24"
        [size_description] => <p>Rectified</p>

    )

[3] => Array
    (
        [size] => 24" x 24"
        [size_description] => <p>Rectified</p>

    )

[4] => Array
    (
        [size] => 24" x 48"
        [size_description] => <p>Rectified</p>

    )

[5] => Array
    (
        [size] => 24" x 48"
        [size_description] => <p>Rectified</p>

    )

)

我想基于“大小”获得不同的子数组,并且我可以循环使用size和size_description。我试过array_unique不能正常工作,我只得到一个大小的值。我试过的是

$new_array = array_unique(array_map(function($elem){return $elem['size'];}, $size_array));

我想同时获得两个值。有什么办法吗?

参考方案

使用array_column()使用size分配新的关联键,而无需更改子数组的内容。这是通过null参数完成的。

然后只需用array_values()重新索引

代码:(Demo)

$array = [
    ['size' => '12" x 24"', 'size_description' => '<p>Rectified</p>'],
    ['size' => '12" x 24"', 'size_description' => '<p>Rectified</p>'],
    ['size' => '24" x 24"', 'size_description' => '<p>Rectified</p>'],
    ['size' => '24" x 24"', 'size_description' => '<p>Rectified</p>'],
    ['size' => '24" x 48"', 'size_description' => '<p>Rectified</p>'],
    ['size' => '24" x 48"', 'size_description' => '<p>Rectified</p>'],
];

var_export(array_values(array_column($array, null, 'size')));

阵列键不能重复-强制唯一。

PHP PDO组按列名称查询结果 - php

以下PDO查询返回以下结果:$db = new PDO('....'); $sth = $db->prepare('SELECT ...'); 结果如下: name curso ABC stack CDE stack FGH stack IJK stack LMN overflow OPQ overflow RS…

PHP:对数组排序 - php

请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…

在单击时显示特定行的SQL数据 - php

我目前有2张桌子,顶部和底部。最上面的是我从SQL数据库调出的数据行。至于底部,数据来自与顶部表相同的数据库,但显示不同的字段。这些字段都在我的SQL数据库的同一行中。基本上,单击顶部表中的任何行,底部表将显示更多信息,这些信息也在SQL数据库的同一行内。我不确定如何显示特定行的数据,现在,当我单击顶部表中的任何行时,它将显示SQL中的所有行。表格代码:&l…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

通过>和<运算符比较日期 - php

在我的所有php代码中,我都在UTC中存储日期和时间,但是我也在使用mysql存储日期时间(也在utc中)。大于和小于运算符会导致日期比较失败吗? $curdate=date('Y-m-d H:i:s'); if($start_datetime>$curdate) 参考方案 不。他们没有办法失败。为此,特意制作了MySQL日期格式。…