Jer*_*Lim 2 php arrays codeigniter
我有2个阵列.
<?php
$array1 = array('id' => 1, 'email' => 'example@example.com' , 'name' => 'john' );
$array2 = array('id', 'email');
Run Code Online (Sandbox Code Playgroud)
我在编写代码时无法从array1中取消设置不是来自数组2的键值对.
这个问题与大多数示例不同,我的array2没有键值对的格式,只有键.
我如何从array1中删除未在array2中指定的东西.
我目前的代码不起作用
foreach ($array1 as $key => $value) {
if (array_search($key, $array2)===false) {
unset($key);
}
}
Run Code Online (Sandbox Code Playgroud)
使用array_diff_key()以留下是价值观不是在第二个数组:
$array1 = array('id'=>1, 'email'=> 'email' , 'name'=>'john' );
$array2 = array('id','email');
$result = array_diff_key($array1, array_flip($array2));
Run Code Online (Sandbox Code Playgroud)
或者,如果要更改第一个数组:
$array1 = array_diff_key($array1, array_flip($array2));
Run Code Online (Sandbox Code Playgroud)
编辑(误解)
使用array_intersect_key()离开该值是在第二个数组:
$array1 = array_intersect_key($array1, array_flip($array2));
Run Code Online (Sandbox Code Playgroud)
你做得对,只是你的方式unset不正确:
unset($key);
Run Code Online (Sandbox Code Playgroud)
应该
unset($array1[$key]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |