根据php中的另一个数组值取消设置一个数组?

Posted

技术标签:

【中文标题】根据php中的另一个数组值取消设置一个数组?【英文标题】:Unset one Array on the basis of another array value in php? 【发布时间】:2013-11-10 03:47:15 【问题描述】:

如何根据另一个数组值删除一个数组索引。 例如-

Array1
(
[0] => @@code
[1] => @@label
[2] => @@name
[3] => @@age
)

Array2
(
[0] => 123jj
[1] => test
[2] => john
[3] => 45
)

Array3
(
[0] => 2 #2 is index to be unset in array1 and array2
[1] => 3 #3 is index to be unset in array1 and array2
) 

我有 3 个数组,我想使用 php 根据 array3 的值取消设置 array1 和 array2 索引。我该如何使用 unset() 方法呢?

unset($array1,$array3) #this is wrong, but some thing like that 
unset($array2,$array3) 

使用 Out for 循环。

我应该得到

Array1
(
[0] => @@code
[1] => @@label
)

Array2
(
[0] => 123jj
[1] => test
)

【问题讨论】:

【参考方案1】:

你问了类似的问题并在得到答案后将其删除:

unset array indexs from value of another array?

$firstArray = array( 0 => '@@code' ,1 => '@@label' ,2 => '@@name' ,3 => '@@age' );

$keysArray = array( 0 ,1 );

$resultArray = array_diff_key( $firstArray ,array_flip( $keysArray ) );

var_dump( $resultArray );

【讨论】:

是同一个人吗?我花时间写了一个非常好的答案,却发现问题已被删除:( @Nic 我正在查看那个问题的 OP 的个人资料,发现了这个问题!【参考方案2】:

也许你需要这个?

foreach($array3 as $tmp)
  unset($array1[$tmp]);
  unset($array2[$tmp]);

【讨论】:

我希望它不使用 for 循环。类似 unset($array1,$array3) unset($array2,$array3)

以上是关于根据php中的另一个数组值取消设置一个数组?的主要内容,如果未能解决你的问题,请参考以下文章

我如何遍历表单数组并将其值设置为打字稿中的另一个数组?

使用 PHP 按键和值取消设置数组

如何在php中取消设置空数组?

从 MySQL 设置一个数组,然后将每个值设置为变量 PHP

取消设置 php 参考

PHP:使用 if 语句从数组中取消设置