Так что я пытался понять это некоторое время и, похоже, застрял. У меня есть многомерный массив, и я пытаюсь вывести все значения с определенным ключом. Вот код:
//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'
)
);
Проблема в том, что я хочу вывести значения с помощью 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']);
}
}
, который работает нормально, пока я не попытаюсь добавить заголовок между типами, такими как
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']);
}
}
Я достаточно усвоил, чтобы понять, что это из-за способа работы циклов foreach
, поэтому я пытался сделать это с помощью чего-то вроде while($service['service_type'] == 'Social Networking')
(который создает забавный бесконечный цикл) и различными другими способами.
В идеале я хочу отсортировать массив по service_type
и затем отобразить результаты без необходимости запуска цикла foreach
между заголовками.
Любая помощь по этому вопросу будет отличной или даже другие предложения о том, как это сделать.