電子メールアドレスという1つのパラメーターに基づいて、多次元配列から一部のユーザーを抽出できるように、配列を並べ替えたいと思います。最終的には、元の配列を2つの異なる配列として分離したいと思います。1つは選択された電子メールアドレス($js
以下のラベル)を持ち、もう1つはそうでない($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
は何も印刷されないため、明らかに正しくありません。どんな考えでも大歓迎です!