嗨所有 stackoverflow 成员,请帮助我解决有关数组操作的问题。
stores_array:
Array
(
[0] => store1
[1] =>store2
)
items_array:
Array
(
[electronics]=>led tv
[cosmetics]=>eyeliner
[fruits]=>apple
[vegetables]=>cabbage
)
这是我到目前为止所拥有的:
$new_array = array();
foreach($stores_array as $t) {
$new_array[$t] = $items_array;
}
echo '<pre>';
print_r($new_array);
echo '<pre/>';
这是输出:
Array
(
[store1] => Array
(
[electronics]=>led tv
[cosmetics]=>eyeliner
[fruits]=>apple
[vegetables]=>cabbage
)
[store2] => Array
(
[electronics]=>led tv
[cosmetics]=>eyeliner
[fruits]=>apple
[vegetables]=>cabbage
)
)
这就是我想要实现的目标:
我想在每个数组中添加一些其他值。
请参阅我打算添加的箭头。
Array
(
[store1] => Array
(
[electronics]=>led tv
[cosmetics]=>eyeliner
[fruits]=>apple
[vegetables]=>cabbage
[store]=>store1 <------- how can i add these?
)
[store2] => Array
(
[electronics]=>led tv
[cosmetics]=>eyeliner
[fruits]=>apple
[vegetables]=>cabbage
[store]=>store2 <------- how can i add these?
)
)
提前谢谢大家..
试试这个:
$new_array = array();
foreach($stores_array as $t) {
$new_array[$t] = $items_array;
$new_array[$t]["store"]=$t;
}
echo '<pre>';
print_r($new_array);
echo '<pre/>';
foreach (array_keys($my_array) as $key) {
$my_array[$key]['store'] = $key;
}
如果我理解问题的话,这应该相对容易。 试试这个:
$new_array = array();
foreach($stores_array as $t) {
$new_array[$t] = $items_array;
$new_array['store'] = $t;
}
您只需将值添加到数组末尾即可。
$new_array = array();
foreach($stores_array as $t) {
$items_array[] = $t;
$new_array[$t] = $items_array;
}
无论如何,如果您只是想以某种方式检索密钥,则无需将其存储在任何地方,您始终可以使用
key($array)
访问它
您的情况:
foreach($new_array as $data){
echo key($data);
}
您可以在
PHP 文档找到有关
key
函数的更多信息。
正如 Marc B 所说,这是一种冗余数据,但这是我的答案:
$new_array = array();
foreach($stores_array as $t) {
$new_array[$t] = $items_array;
$new_array[$t]['store'] = $t;
}
对于函数式方法,使用
array_reduce()
声明关联键,同时从静态和动态数据填充行。 演示
var_export(
array_reduce(
$stores,
fn($result, $s) => $result + [$s => $items + ['store' => $s]],
[]
)
);
输出:
array (
'store1' =>
array (
'electronics' => 'led tv',
'cosmetics' => 'eyeliner',
'fruits' => 'apple',
'vegetables' => 'cabbage',
'store' => 'store1',
),
'store2' =>
array (
'electronics' => 'led tv',
'cosmetics' => 'eyeliner',
'fruits' => 'apple',
'vegetables' => 'cabbage',
'store' => 'store2',
),
)