我从查询中返回了这个数组:
Array
(
[0] => Array
(
[name] => 'Kathy'
[gender] => 'female'
[age] => 32
)
[1] => Array
(
[name] => 'Steve'
[gender] => 'male'
[age] => 19
)
[2] => Array
(
[name] => 'Joe'
[gender] => 'male'
[age] => 36
)
[3] => Array
(
[name] => 'Lynn'
[gender] => 'female'
[age] => 45
)
)
我想把它分成两个数组:一个只包含女性,另一个只包含男性:
这可能与数组函数有关,还是我必须进行两次查询(我真的不想做的事情!)
答案 0 :(得分:2)
快速&脏:
$females_array = array();
$males_array = array();
foreach($orginal_array as $array)
{
if($array['gender'] == 'female')
{
$females_array[] = $array;
}
else
{
$males_array[] = $array;
}
}
答案 1 :(得分:1)
当然可以!假设你的数组是$people
,你可以使用:
$males = array();
$females = array();
foreach ($people as $person) {
if ($person['gender'] == 'male') $males[] = $person;
else $females[] = $person;
}
然后你有$males
数组中的男性和$females
数组中的女性。
答案 2 :(得分:1)
你可以很容易地手动完成。
$males = array();
$females = array();
foreach( $originalArray as $person ) {
if( $person['gender'] === 'male' ) {
$males[] = $person;
} else {
$females = $person;
}
}
答案 3 :(得分:1)
编写了一个按性别分类的小功能。您可以使用switch in而不是if / else,但由于在当前问题中只有两个条件,因此没有任何理由让任何理由使代码更加聚集。此功能应该可以很好地解决您的问题。
function sortByGender( array $people )
{
$result = array(
'male' => array(),
'female' => array(),
);
foreach ( $people as $person )
{
if ( 'female' == $person['gender'] )
{
$result['female'] = $person;
}
else
{
$result['male'] = $person;
}
}
return $result;
}
答案 4 :(得分:1)
只需循环,检查性别键的值:
$array_male = array();
$array_female = array();
foreach ($src_array as $elem) {
if ($elem['gender'] == 'male') {
$array_male[] = $elem;
} else {
$array_female[] = $elem;
}
}
答案 5 :(得分:0)
您需要自己编写数组函数。所有预定义的PHP数组函数仅适用于单维数组。
答案 6 :(得分:0)
您可以使用array_filter()
功能执行此操作。
function check_female($arr) { return ($arr['gender'] == 'female'); }
function check_male($arr) { return ($arr['gender'] == 'male'); }
$males = array_filter($people, "check_male");
$females = array_filter($people, "check_female");