эхо-ключ и значение массива без цикла и с циклом
Это массив, который у меня есть
<?php
$page['Home']='index.html';
$page['Service']='services.html';
?>
Как я могу повторить что-то подобное для отдельного человека, такого как
Home is at index.html
И снова, как я могу сделать это через цикл и повторить все?
10 answers
foreach($page as $key => $value) {
echo "$key is at $value";
}
Для версии "без цикла" я просто спрошу "почему?"
Без петли, просто для удовольствия...
Вы можете либо преобразовать массив в неассоциативный, выполнив:
$page = array_values($page);
, А затем обрабатываем каждый элемент по его индексу на основе нуля:
echo $page[0]; // 'index.html'
echo $page[1]; // 'services.html'
Или вы можете использовать немного более сложную версию:
$value = array_slice($page, 0, 1);
echo key($value); // Home
echo current($value); // index.html
$value = array_slice($page, 1, 1);
echo key($value); // Service
echo current($value); // services.html
Если вы не должны использовать цикл (почему?), вы могли бы использовать array_walk
,
function printer($v, $k) {
echo "$k is at $v\n";
}
array_walk($page, "printer");
Для первого вопроса
$key = 'Home';
echo $key." is at ".$page[$key];
function displayArrayValue($array,$key) {
if (array_key_exists($key,$array)) echo "$key is at ".$array[$key];
}
displayArrayValue($page, "Service");
Эхо-ключ и значение массива без цикла и с циклом
$array = array(
'kk6NFKK'=>'name',
'nnbDDD'=>'claGg',
'nnbDDD'=>'kaoOPOP',
'nnbDDD'=>'JWIDE4',
'nnbDDD'=>'lopO'
);
print_r(each($array));
Вывод
Array
(
[1] => name
[value] => name
[0] => kk6NFKK
[key] => kk6NFKK
)
Как отобразить ключ и значение массива без цикла и с циклом
$keys = array_keys($page);
implode(',',$keys);
echo $keys[0].' is at '.$page['Home'];
Рекурсивная функция для изменения;) Я использую его для вывода мультимедийной информации для видео и т. Д. Элементы которой могут использовать вложенный массив/атрибуты.
function custom_print_array($arr = array()) {
$output = '';
foreach($arr as $key => $val) {
if(is_array($val)){
$output .= '<li><strong>' . ucwords(str_replace('_',' ', $key)) . ':</strong><ul class="children">' . custom_print_array($val) . '</ul>' . '</li>';
}
else {
$output .= '<li><strong>' . ucwords(str_replace('_',' ', $key)) . ':</strong> ' . $val . '</li>';
}
}
return $output;
}
Моя версия без цикла была бы такой:
echo implode(
"\n",
array_map(
function ($k, $v) {
return "$k is at $v";
},
array_keys($page),
array_values($page)
)
);
Для каждого ($arry как $ключ = > $значение) { ключ echo $;
Для каждого ($значение как $val) { эхо $вал; } }