使用逗号

时间:2015-07-01 13:30:44

标签: php arrays

我有一个像这样的数组

[1] => Array
        (
            [Customer] => Customer1
            [whatever] => XXXXX
            [names] => Carmen, Javier
        )

我想要相同的数组但是这样

[1] => Array
        (
            [Customer] => Customer1
            [whatever] => XXXXX
            [names] => Array ([0] => Carmen, [1] => Javier)

        )

我试过这个

foreach ($data as $value) {
            foreach ($value as $key => $val) {
                if ($key == 'names') {
                    $value[$key] =(array_map('trim',explode(",",$val)));
                }
            }
        }

但它没有做我想要的事情

3 个答案:

答案 0 :(得分:0)

如果要在循环中修改数组,则必须通过引用或先复制它,然后再进行复制。

参考方式:

foreach ($data as &$value) {
    foreach ($value as $key => $val) {
        if ($key == 'names') {
            $value[$key] =(array_map('trim',explode(",",$val)));
        }
    }
}
unset($value);

答案 1 :(得分:0)

您的第二个foreach语句并不是真正的需要,还要注意您调用变量的内容,有很多名为$value的内容毫无意义,将$value更改为有意义的内容对数据。我改变的最后一件事是我传递$value作为参考,所以我可以在foreach中更新它

$testData = [
    [
        'someKey' => 'someValue',
        'names' => "Foo, Bar",
    ],
    [
        'someKey' => 'someValue',
        'names' => "Fred, Wilma",
    ]
];

foreach ($testData as &$value) {
    if(isset($value['names'])) {
        $tempValue = $value['names'];
        $names = explode("," , $tempValue);
        $value['names'] = array_map('trim',  $names);
    }
}

unset($value);
var_dump($testData);

希望有所帮助

答案 2 :(得分:0)

我已经成功了......我只需要使用

SomeTest <Integer> mRef = new MyClass<Integer>()::myGenMeth;
mRef.test(1, 2);

Supplier<Boolean> p = new ArrayList<>()::isEmpty;
p.get();

谢谢你们