PHP仅使用一个标题按类别转换数组组
我有这个阵列:PHP仅使用一个标题按类别转换数组组,php,arrays,Php,Arrays,我有这个阵列: $result = array( '0' => array( 'field_categories' => 'Visitor', 'field_name' => 'Visitor-1', ), '1' => array( 'field_categories' => 'Visitor', 'field_name' => 'Visitor-2' )
$result = array(
'0' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-1',
),
'1' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-2'
),
'2' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-3'
),
'3' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-4'
),
'4' => array(
'field_categories' => 'Doctor',
'field_name' => 'Doctor-1'
),
'5' => array(
'field_categories' => 'Doctor',
'field_name' => 'Doctor-2'
),
'6' => array(
'field_categories' => 'Manager',
'field_name' => 'Manager-1'
),
'7' => array(
'field_categories' => 'Manager',
'field_name' => 'Manager-2'
),
'8' => array(
'field_categories' => 'Manager',
'field_name' => 'Manager-3'
)
);
echo '<pre>',print_r($result),'</pre>';
如果您正在尝试重复数据消除
field\u name
和field\u categories
,则可以将每个值分配给数组的键,然后执行array\u翻转
$result = array(
'0' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-1',
),
'1' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-2'
),
'2' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-3'
),
'3' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-4'
),
'4' => array(
'field_categories' => 'Doctor',
'field_name' => 'Doctor-1'
),
'5' => array(
'field_categories' => 'Doctor',
'field_name' => 'Doctor-2'
) );
foreach($result as $key=>$val)
{
$newarray[$val['field_categories']][] = $val['field_name'];
}
print_r( $newarray);
只需在回显语句之前添加此行:
Array
(
[Visitor] => Array
(
[0] => Visitor-1
[1] => Visitor-2
[2] => Visitor-3
[3] => Visitor-4
)
[Doctor] => Array
(
[0] => Doctor-1
[1] => Doctor-2
)
)
输出
为什么是-4+我为你准备好了。
$result = array_map(function($e){return isset($e['field_name'])?$e['field_name']:null;} , $result);
$result = array(
'0' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-1',
),
'1' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-2'
),
'2' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-3'
),
'3' => array(
'field_categories' => 'Visitor',
'field_name' => 'Visitor-4'
),
'4' => array(
'field_categories' => 'Doctor',
'field_name' => 'Doctor-1'
),
'5' => array(
'field_categories' => 'Doctor',
'field_name' => 'Doctor-2'
) );
foreach($result as $key=>$val)
{
$newarray[$val['field_categories']][] = $val['field_name'];
}
print_r( $newarray);
Array
(
[Visitor] => Array
(
[0] => Visitor-1
[1] => Visitor-2
[2] => Visitor-3
[3] => Visitor-4
)
[Doctor] => Array
(
[0] => Doctor-1
[1] => Doctor-2
)
)