我想使用循环将项目添加到我的数组中。但是我做错了。
我尝试了这段代码,但无法提供我想要的格式/输出。
$img_arr[]= "";
foreach ($images as $image) {
$img_arr['src'][] .= $image['src'];
}
我想要这种输出。
array (
'src' => 'https://example.com/wp-content/uploads/2019/07/3.jpg',
),
array (
'src' => 'https://example.com/wp-content/uploads/2019/07/2-1.jpg',
),
array (
'src' => 'https://example.com/wp-content/uploads/2019/07/3.jpg',
),
array (
'src' => 'https://example.com/wp-content/uploads/2019/07/1-1.jpg',
),
array (
'src' => 'https://example.com/wp-content/uploads/2019/07/4-1.jpg',
)
答案 0 :(得分:1)
此代码:
foreach ($images as $image) {
$img_arr['src'][] .= $image['src'];
}
在$ img_arr中添加一个数组,以“ src”作为键,以URL作为值。等号之前的时间段也是不必要的。
您想要这个:
foreach ($images as $image) {
$img_arr[] = ['src' => $image['src']];
}
这会将一系列新数组添加到$ img_arr中。添加的每个数组都是一个键值对,key =“ src”,value = [URL无关]。
答案 1 :(得分:0)
稍微更改一下代码:
$img_arr = []; //create an array variable
foreach ($images as $image) {
//assign child-array to newly create array variable
$img_arr[] = ['src'=>$image['src']];
}
print_r($img_arr); //check desired output coming or not?
答案 2 :(得分:0)
$images = [
['src'=>'1.jpg'],
['src'=>'2.jpg'],
['src'=>'3.jpg'],
['src'=>'4.jpg'],
['src'=>'5.jpg'],
['src'=>'6.jpg']
];
$url = 'https://example.com/wp-content/uploads/2019/07/';
$img_arr = array();
foreach($images as $image){
$img_arr[] = ['src' => $url.$image['src']];
}
print_r($img_arr);
Output:
-------------------------------------------------------------------
Array
(
[0] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/1.jpg
)
[1] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/2.jpg
)
[2] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/3.jpg
)
[3] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/4.jpg
)
[4] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/5.jpg
)
[5] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/6.jpg
)
)
答案 3 :(得分:0)
您使用$img_arr[] = "";
初始化数组,这将导致
array(1) {
[0]=>
string(0) ""
}
我认为您的意思是$img_arr = [];
在foreach中,您使用.=
,它是字符串concatenation的运算符。您可以省略点,而仅使用[]
将元素推到数组的末尾。
然后将src
添加为foreach中的键将为您提供一个包含2个键的数组,其中第一个为0,未使用,第二个为key
。
一种替代方法可能是使用array_map:
$img_arr = array_map(function ($x) {
return ['src' => $x["src"]];
}, $images);
print_r($img_arr);
结果
Array
(
[0] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/3.jpg
)
[1] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/2-1.jpg
)
[2] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/3.jpg
)
[3] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/1-1.jpg
)
[4] => Array
(
[src] => https://example.com/wp-content/uploads/2019/07/4-1.jpg
)
)