获取具有特定键值的所有值

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在标头之间运行循环.

任何有关这方面的帮助都会令人敬畏甚至是其他建议.

asn*_*der 9

使用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