Php 递归使用另一个数组替换具有特定键的数组
我有一个数组,其中keyPhp 递归使用另一个数组替换具有特定键的数组,php,Php,我有一个数组,其中keytype==“foo”的所有数组都必须替换为自定义数组。 基本上,我需要找到一个特定的数组,然后用其他数组替换它 这里的问题是,你可以很容易地替换一个数组,但是当你插入数组的数量时,你正在移动键,这样下一个数组就不会被替换了 任何帮助都将不胜感激 以下是我所拥有的: $array = array( array( 'options' => array( array( 'type' => 'foo'
type==“foo”
的所有数组都必须替换为自定义数组。
基本上,我需要找到一个特定的数组,然后用其他数组替换它
这里的问题是,你可以很容易地替换一个数组,但是当你插入数组的数量时,你正在移动键,这样下一个数组就不会被替换了
任何帮助都将不胜感激
以下是我所拥有的:
$array = array(
array(
'options' => array(
array(
'type' => 'foo'
),
array(
'type' => 'foo'
),
array(
'type' => 'bar'
)
)
),
array(
'options' => array(
array(
'type' => 'bar'
),
array(
'type' => 'bar'
),
array(
'type' => 'foo'
)
)
),
);
我有一个数组,它应该替换type==“foo”
$array_foo = array(
array(
'type' => 'custom'
),
array(
'type' => 'custom_2'
),
array(
'type' => 'anything'
),
);
以下是所需的输出:
$array = array(
array(
'options' => array(
array(
'type' => 'custom'
),
array(
'type' => 'custom_2'
),
array(
'type' => 'anything'
),
array(
'type' => 'custom'
),
array(
'type' => 'custom_2'
),
array(
'type' => 'anything'
),
array(
'type' => 'bar'
)
)
),
array(
'options' => array(
array(
'type' => 'bar'
),
array(
'type' => 'bar'
),
array(
'type' => 'custom'
),
array(
'type' => 'custom_2'
),
array(
'type' => 'anything'
),
)
),
);
谢谢。根据之前的帖子,更改代码的方式与以下代码类似:
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");
$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
因此,使用您的方法,而不是使用数字或索引,我认为您可能可以通过写下foo来让替换项正常工作
您可能要了解的另一件事是数组合并递归,可在以下位置找到:
您在此处指出的问题与本文类似:
我希望这对您有所帮助。以下是一种使用2个嵌套foreach循环和一个临时数组的方法:
并检查输出:
echo '<pre>' . print_r($array, true) . '</pre>';
echo“”。打印($array,true)。“”;
另请参见到目前为止您尝试了什么?@AymDev simple foreach find array然后取消设置,然后array\u与array\u slice合并以插入新数据,而不是未设置的数据,但正如我所说的,它仅适用于您尝试的第一个创建的arrayGlad!编辑您的问题并发布您的尝试,这样我们就可以看到哪里出了问题并帮助您解决这个问题。“foo”并不是一个在帖子中不清楚的关键词,它只是为了展示一个演示。非常感谢。它工作得很好。因此,显然不需要创建递归函数:)
echo '<pre>' . print_r($array, true) . '</pre>';