PHP array column-как сохранить ключи?
$items = array(
1 => [
"id" => 5
],
3 => [
"id" => 6
],
4 => [
"id" => 7
],
);
var_dump(array_column($items,"id"));
результате
array (size=3)
0 => int 5
1 => int 6
2 => int 7
но как я могу сохранить ключ $items
Так что я могу получить это ниже?
array (size=3)
1 => int 5
3 => int 6
4 => int 7
6 ответов
foreach(key($parameters) as $key)
{
print($key);
}
при желании вы также можете сохранить этот результат в других переменных.
и чтобы показать оба ключа и значения, попробуйте это:
foreach ($parameters as $key => $value) {
echo $key . ' = ' . $value . '<br>';
}
посмотрите, может ли это помочь
array_filter(array_combine(array_keys($items), array_column($items, 'id')));
ища то же решение и комбинируя некоторые трюки, я создал это:
$userdb=Array
(
"test1" => array
(
'uid' => '100',
'name' => 'Sandra Shush',
'url' => 'urlof100'
),
"test2" => array
(
'uid' => '5465',
'name' => 'Stefanie Mcmohn',
'pic_square' => 'urlof100'
),
"test3" => array
(
'uid' => '40489',
'name' => 'Michael',
'pic_square' => 'urlof40489'
)
);
echo $key = array_search(
40489,
array_filter(
array_combine(
array_keys($userdb),
array_column(
$userdb, 'uid'
)
)
)
);
результат 'test3'.
работа с номерами массивов или именованными массивами.
Я думаю, что это самый быстрый способ, чтобы держать ключи без циклов и итераций
array_diff(array_combine(array_keys($items), array_column($items, 'id')), [null])
Другой альтернативой является использование использование array_map
$result = array_map(function($item) {return $item['id'];}, $items);