我有一个像这样的数组
[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)));
}
}
}
但它没有做我想要的事情
答案 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();
谢谢你们