繁体   English   中英

PHP数组删除重复项-不是Array_Unique

[英]PHP Array Remove Duplicates - not Array_Unique

我在PHP中有一个多维数组(伪数据):

Array
(
[0] => Array
    (
        [pmkSuppliers] => 1
        [0] => 1
        [Name] => Supplier2
        [1] => Supplier2
        [Email] => Me@me.com2
        [2] => Me@me.com2
        [Address] => 624  st
        [3] => 624 st
        [Phone] => 900-111-1111
        [4] => 900-111-1111
        [Fax] => 900-111-1112
        [5] => 900-111-1112
        [TechSupport] => 900-111-1112
        [6] => 900-111-1112
        [Contact] => Greg
        [7] => Greg
        [Modified] => 2016-06-07
        [8] => 2016-06-07
    )

[1] => Array
    (
        [pmkSuppliers] => 2
        [0] => 2
        [Name] => Nike
        [1] => Nike
        [Email] => me@none.com
        [2] => me@none.com
        [Address] => 4566 way
        [3] => 4566 way
        [Phone] => 901-206-5555
        [4] => 901-206-5555
        [Fax] => 901-206-5555
        [5] => 901-206-5555
        [TechSupport] => 901-206-5445
        [6] => 901-206-5445
        [Contact] => Brad
        [7] => Brad
        [Modified] => 2016-06-08
        [8] => 2016-06-08
    )

)

我想用非int键删除所有元素。 所以看起来像这样:

Array
(
[0] => Array
    (
        [0] => 1
        [1] => Supplier2
        [2] => Me@me.com2
        [3] => 624 st
        [4] => 900-111-1111
        [5] => 900-111-1112
        [6] => 900-111-1112
        [7] => Greg
        [8] => 2016-06-07
    )

[1] => Array
    (
        [0] => 2
        [1] => Nike
        [2] => me@none.com
        [3] => 4566 way
        [4] => 901-206-5555
        [5] => 901-206-5555
        [6] => 901-206-5555
        [7] => Brad
        [8] => 2016-06-08
    )

 )

我认为必须有一种简单的方法来执行此操作,但是我遇到了麻烦。 我不能使用PHP方法array_unique,因为有时数组中的值是相同的(例如第二组中的值)。

如果有人能指出我正确的方向,那就太好了。

谢谢,
FP

编辑

这就是我一直在做的事情,但是看起来很粗糙。

foreach ($array as $insideArray) {
    foreach ($insideArray as $key => $value) {
        if (!is_int($key)) {
            echo $value;
        }
    }
}

在你使用PDO的情况下,刚刚成立的获取方式:

$statement->setFetchMode(PDO::FETCH_NUM);

你可以看到在差异fetchStyle 手册


此外,您还可以使用

$statement->fetchAll(PDO::FETCH_COLUMN);

这是讨论不同获取方法的外部文章1文章2

foreach ($array as &$arr){
    foreach ($arr as $key => $value) {
    if (!is_int($key)) {
        unset($arr[$key]);
    }
  }
}

暂无
暂无

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

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