我想对一个数组进行排序,以便我可以根据一个参数(他们的电子邮件地址)从多维数组中提取一些用户。最终,我希望将原始数组分隔为 2 个不同的数组:一个带有选择的电子邮件地址($js
在下面标记),一个没有($not_js
在下面标记)。
这是我的代码:
<?php
$users['1'] = array('name'=>'bob barker',
'email'=>'bb@bb.com',
'id'=>'1');
$users['2'] = array('name'=>'jerry jones',
'email'=> 'jj@jj.com',
'id'=>'2' );
$users['3'] = array('name'=>'sue smith',
'email'=>'ss@ss.com',
'id'=>'3' );
$users['4'] = array('name'=>'zach zed',
'email'=>'zz@zz.com',
'id'=>'4' );
function sort_jerry_and_sue($users)
{
$j_and_s=array('jj@jj.com', 'ss@ss.com');
$not_js=array();
foreach($j_and_s as $row=>$js){
if(in_array($js, $users)){
}
else {
array_push($not_js, $users);
}
}
return $not_js;
}
$not_js = array_filter($users, 'sort_jerry_and_sue');
print_r($not_js);
// this is what i'd like it to print=> $not_js = Array ([0] => Array ( [name] => bob barker [email] => bb@bb.com [id] => 1 ) [1] => Array ( [name] => zach zed [email] => zz@zz.com [id] => 4 ))
print_r($js);
// this is what i'd like it to print=> $js = Array ([0] => Array ( [name] => jerry jones [email] => jj@jj.com [id] => 2 ) [1] => Array ( [name] => sue smith [email] => ss@ss.com [id] => 3 ))
?>
当前打印$not_js
返回所有 4 个用户并且$js
不打印任何内容,所以显然这是不对的。任何想法将不胜感激!