Array
(
[0] => Array
(
[:stock_type] => tests
)
[1] => Array
(
[stock_name] => test
)
)
$arr[] = $var;
Как избегать foreach внутри foreach?
Очень часто вижу на разных форумах, в коммах в вк и тд юзать цикл внутри цикла не правильно
Каким образом можно сделать это по другому(правильно) ?
$artists = [
[
'name' => 'Artist name1',
'tracks' => [
[
'track_name' => 'My first song'
],
[
'track_name' => 'My second song'
]
]
],
[
'name' => 'Artist name1',
'tracks' => [
[
'track_name' => 'My first song'
],
[
'track_name' => 'My second song'
]
]
],
];
$all_tracks = [];
foreach($artists as $artist)
{
foreach($artist['tracks'] as $track)
{
$all_tracks[] = $track['track_name'];
}
}
var_dump($all_tracks);
$all_tracks = [];
foreach($artists as $artist)
{
$all_tracks = array_merge($all_tracks, array_column($artist['tracks'], 'track_name'));
}
var_dump($all_tracks);
не ужели у вас в практике не было случая, когда нужно было юзать цикл внутри цикла ? Как вы с этим боролись
Очень часто вижу на разных форумах, в коммах в вк и тд юзать цикл внутри цикла не правильно
<?php
$arr = [
0 => ['key1' => 'value1'],
1 => ['key2' => 'value2'],
2 => ['key3' => 'value3'],
];
foreach($arr as $data)
{
$key = array_keys($data)[0];
$val = $data[$key];
echo "{$key}: {$val}\n";
}
//key1: value1
//key2: value2
//key3: value3
$stockNames = array_column($arr, 'stock_name', 'id');
echo $stockNames[$stockId] ?? '';
<?php
$input = [
['stock_type' => 'tests'],
['stock_name' => 'test', 'one_more_key' => 'one_more_value']
];
$result = [];
foreach($input as $i) {
$result = array_merge($result, $i);
}
var_export($result);
Очень часто вижу на разных форумах, в коммах в вк и тд юзать цикл внутри цикла не правильно, но как этого избегать никто не пишет, по крайней мере я не нашел.