Bro*_*ke. 1 php arrays foreach loops multidimensional-array
所以我一直试图弄清楚这一段时间,似乎被卡住了.我有一个multidimensionalarray,我试图用一个键输出所有值.这是代码:
//My Array:
$services = array(
array( service_name => 'facebook',
service_title => 'Facebook',
service_order => 0,
service_type => 'Social Networking'
),
array( service_name => 'twitter',
service_title => 'Twitter',
service_order => 0,
service_type => 'Social Networking'
),
array( service_name => 'tumblr',
service_title => 'MySpace',
service_order => 0,
service_type => 'Blogging'
)
);
Run Code Online (Sandbox Code Playgroud)
问题是我想输出值service_type,例如"社交网络"或"博客"如果我使用这样的foreach语句我可以这样做:
foreach($services as $service) {
if ($service['service_type'] == 'Social Networking') {
echo($service['service_title']);
}
if ($service['service_type'] == 'Blogging') {
echo($service['service_title']);
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我尝试在类型之间添加标题
foreach($services as $service) {
if ($service['service_type'] == 'Social Networking') {
echo($service['service_title']);
}
echo ('<h3> Blogging</h3>');
if ($service['service_type'] == 'Blogging') {
echo($service['service_title']);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经学到了足够的知识,这是因为foreach循环的工作方式,所以我一直试图用类似的东西while($service['service_type'] == 'Social Networking')(这创建一个有趣的无限循环)和各种其他方式来做到这一点.
理想情况下,我希望对数组进行排序service_type,然后显示结果,而不必foreach在标头之间运行循环.
任何有关这方面的帮助都会令人敬畏甚至是其他建议.
使用php> 5.5即可
$myData = array(
array(
'service_name' => 'facebook',
'service_title' => 'Facebook',
'service_order' => 0,
'service_type' => 'Social Networking'
),
array(
'service_name' => 'twitter',
'service_title' => 'Twitter',
'service_order' => 0,
'service_type' => 'Social Networking'
),
array(
'service_name' => 'tumblr',
'service_title' => 'MySpace',
'service_order' => 0,
'service_type' => 'Blogging'
)
);
$filtered = array_column($myData, 'service_column');
Run Code Online (Sandbox Code Playgroud)
请参阅:http://www.php.net/manual/en/function.array-column.php