用数组替换PHP关联数组值(字符串)
我想用标题匹配的“baz”数组中的数组替换“BLOCKS”数组中的“baz”值 我尝试过分解块['baz',然后循环遍历结果并进行stru_替换,但没有效果。我相信有一个更简洁直接的解决方案 查看底部的期望输出,了解我试图实现的目标。非常感谢用数组替换PHP关联数组值(字符串),php,multidimensional-array,for-loop,associative-array,Php,Multidimensional Array,For Loop,Associative Array,我想用标题匹配的“baz”数组中的数组替换“BLOCKS”数组中的“baz”值 我尝试过分解块['baz',然后循环遍历结果并进行stru_替换,但没有效果。我相信有一个更简洁直接的解决方案 查看底部的期望输出,了解我试图实现的目标。非常感谢 BLOCKS array 0 => array 'foo' => string 'block1' (length=6) 'bar' => string
BLOCKS
array
0 =>
array
'foo' => string 'block1' (length=6)
'bar' => string '/uploads/commercial/pdf.pdf' (length=27)
'baz' => string '372|371' (length=7)
1 =>
array
'foo' => string 'block2' (length=6)
'bar' => string '/uploads/commercial/pdf.pdf' (length=27)
'baz' => string '371' (length=3)
BAZ
array
372 =>
array
'wibble' => string 'building2' (length=9)
'wobble' => int 235000
'wubble' => string 'office|medical' (length=14)
371 =>
array
'wibble' => string 'building1' (length=9)
'wobble' => int 252000
'wubble' => string 'office' (length=6)
DESIRED OUTPUT
array
0 =>
array
'foo' => 'block1'
'bar' => '/uploads/commercial/pdf.pdf'
'baz' => array(
372 =>
array
'wibble' => string 'building2' (length=9)
'wobble' => int 235000
'wubble' => string 'office|medical' (length=14)
371 =>
array
'wibble' => string 'building1' (length=9)
'wobble' => int 252000
'wubble' => string 'office' (length=6)
);
1 =>
array
'foo' => string 'block2' (length=6)
'bar' => string '/uploads/commercial/pdf.pdf' (length=27)
'baz' => array(
371 =>
array
'wibble' => string 'building1' (length=9)
'wobble' => int 252000
'wubble' => string 'office' (length=6)
)
);
试试这个:
foreach ($blocks as &$block) {
$bazIds = explode('|', $block['baz']);
unset($block['baz']); // Keep it clean
foreach ($bazIds as $bazId) {
if (array_key_exists($bazId, $baz) {
$block['baz'][$bazId] = $baz[$bazId];
}
}
}
可以使用foreach遍历数组并检查键。如果您找到了所需的键,则将值放置在下面的代码中
foreach($BLOCKS as $key -> $value){
if(is_array($value){
foreach($BLOCKS[$key] as $key1 -> $value){
if($key1=='baz'){
//logic here for string split using token | and create a new array from value
// You need to put $$ for using value as variable.
}
}
}
}
用户是Gar信息技术的高级开发人员请添加您迄今为止尝试过的代码。谢谢迈克,这就是我想要的。根据我所拥有的东西来创建我所需要的东西比直接替换它要干净得多。很抱歉,对S.O.来说是个新手,不知道如何接受它。他们不会在任何地方记录检查图标!