如何在php中替换嵌套数组值
它是我的数组值 在这里,我发送了一些值,例如该酒店的如何在php中替换嵌套数组值,php,arrays,Php,Arrays,它是我的数组值 在这里,我发送了一些值,例如该酒店的酒店id和徽标 但我应该需要发送作为图像URL的标志 i、 e:,对于此:1463466926-97157549.jpg 我需要把它作为 http://localhost/abservetech/laravel/abserve_crud_travelz/public/1463466926-97157549.jpg 通过添加该图像的路径 最后,我的数组应该是这样的 Array ( [0] => Array (
酒店id
和徽标
但我应该需要发送作为图像URL的标志
i、 e:,对于此:1463466926-97157549.jpg
我需要把它作为
http://localhost/abservetech/laravel/abserve_crud_travelz/public/1463466926-97157549.jpg
通过添加该图像的路径
最后,我的数组应该是这样的
Array
(
[0] => Array
(
[hotel_id] => 79
[logo] => 1463466926-97157549.jpg
)
[1] => Array
(
[hotel_id] => 78
[logo] => 1463466942-15603675.jpg
)
[2] => Array
(
[hotel_id] => 77
[logo] => 1463466953-25200244.jpg
)
[3] => Array
(
[hotel_id] => 76
[logo] => 1463466967-62926110.jpg
)
[4] => Array
(
[hotel_id] => 75
[logo] =>
)
[5] => Array
(
[hotel_id] => 74
[logo] =>
)
)
这里,最后两个酒店有空图像
为此,我发送了一个默认图像URL,如http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg
像这样
Array
(
[0] => Array
(
[hotel_id] => 79
[logo] => 1463466926-97157549.jpg
)
[1] => Array
(
[hotel_id] => 78
[logo] => 1463466942-15603675.jpg
)
[2] => Array
(
[hotel_id] => 77
[logo] => 1463466953-25200244.jpg
)
[3] => Array
(
[hotel_id] => 76
[logo] => 1463466967-62926110.jpg
)
[4] => Array
(
[hotel_id] => 75
[logo] =>
)
[5] => Array
(
[hotel_id] => 74
[logo] =>
)
)
有人能帮我吗
先谢谢你
我已经这样试过了
Array
(
[0] => Array
(
[hotel_id] => 79
[logo] => http://localhost/abservetech/laravel/abserve_crud_travelz/public/1463466926-97157549.jpg
)
[1] => Array
(
[hotel_id] => 78
[logo] => http://localhost/abservetech/laravel/abserve_crud_travelz/public/1463466942-15603675.jpg
)
[2] => Array
(
[hotel_id] => 77
[logo] => http://localhost/abservetech/laravel/abserve_crud_travelz/public/1463466953-25200244.jpg
)
[3] => Array
(
[hotel_id] => 76
[logo] => http://localhost/abservetech/laravel/abserve_crud_travelz/public/1463466967-62926110.jpg
)
[4] => Array
(
[hotel_id] => 75
[logo] => http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg
)
[5] => Array
(
[hotel_id] => 74
[logo] => http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg
)
)
这里,\URL::to(“”)。“/”
是我的路径,$Roo
是我的数组
但是,它只在单独的数组中检索
徽标。说您的数组名是$arr
,因此开始遍历整个数组,如果酒店id匹配,则用新徽标替换您的徽标
$im =array();
foreach ($Roo as $key => $value)
{
$im[]=(\URL::to('').'/'.$value['logo']);
}
使用&
意味着数组是引用的,因此您在此处更改的内容必须在主数组中更新,这是可选的
foreach($hotel_details as $key => $detail) {
if(!empty($detail['logo']) {
$detail['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$detail['logo']
$hotel_destails[$key] = $detail
} else {
$detail['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg'
$hotel_destails[$key] = $detail
}
}
注意:如果您想更改整个阵列,那么它将非常容易,
只需删除if条件
假设您的阵列名称为$arr
,那么开始遍历整个阵列,如果酒店id匹配,则用新的徽标替换您的徽标
使用&
意味着数组是引用的,因此您在此处更改的内容必须在主数组中更新,这是可选的
foreach($hotel_details as $key => $detail) {
if(!empty($detail['logo']) {
$detail['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$detail['logo']
$hotel_destails[$key] = $detail
} else {
$detail['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg'
$hotel_destails[$key] = $detail
}
}
注意:如果您想更改整个阵列,那么它将非常容易,
只需删除if条件
循环遍历阵列并按如下方式更新阵列:
$path = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/';
$hotel_id = 79;
foreach($arr as $key => &$value){
if($value['hotel_id'] == $hotel_id){
$value['logo'] = $path.$value['logo'];
break;
}
}
print_r($arr);
循环遍历阵列并按如下方式更新阵列:
$path = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/';
$hotel_id = 79;
foreach($arr as $key => &$value){
if($value['hotel_id'] == $hotel_id){
$value['logo'] = $path.$value['logo'];
break;
}
}
print_r($arr);
你应该查一下
使用此条目数组:
foreach ($array as $key => &$value) {
if ($value['logo'] != '') {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$value['logo'];
} else {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg';
}
}
print_r($array);
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] =>
)
[4] => Array
(
[hotel_id] => 4
[logo] => image_4.jpg
)
)
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] => http://some_addr.tld/some_dir/some_sub_dir/300x300.jpg
)
[4] => Array
(
[hotel_id] => 4
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_4.jpg
)
)
您可以获得以下输出数组:
foreach ($array as $key => &$value) {
if ($value['logo'] != '') {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$value['logo'];
} else {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg';
}
}
print_r($array);
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] =>
)
[4] => Array
(
[hotel_id] => 4
[logo] => image_4.jpg
)
)
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] => http://some_addr.tld/some_dir/some_sub_dir/300x300.jpg
)
[4] => Array
(
[hotel_id] => 4
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_4.jpg
)
)
只需这样做:
foreach ($array as $key => &$value) {
if ($value['logo'] != '') {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$value['logo'];
} else {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg';
}
}
print_r($array);
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] =>
)
[4] => Array
(
[hotel_id] => 4
[logo] => image_4.jpg
)
)
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] => http://some_addr.tld/some_dir/some_sub_dir/300x300.jpg
)
[4] => Array
(
[hotel_id] => 4
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_4.jpg
)
)
其中,$arr
是包含您的酒店的阵列,$res
将是修改后的阵列。您应该在那里查看
使用此条目数组:
foreach ($array as $key => &$value) {
if ($value['logo'] != '') {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$value['logo'];
} else {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg';
}
}
print_r($array);
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] =>
)
[4] => Array
(
[hotel_id] => 4
[logo] => image_4.jpg
)
)
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] => http://some_addr.tld/some_dir/some_sub_dir/300x300.jpg
)
[4] => Array
(
[hotel_id] => 4
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_4.jpg
)
)
您可以获得以下输出数组:
foreach ($array as $key => &$value) {
if ($value['logo'] != '') {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$value['logo'];
} else {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg';
}
}
print_r($array);
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] =>
)
[4] => Array
(
[hotel_id] => 4
[logo] => image_4.jpg
)
)
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] => http://some_addr.tld/some_dir/some_sub_dir/300x300.jpg
)
[4] => Array
(
[hotel_id] => 4
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_4.jpg
)
)
只需这样做:
foreach ($array as $key => &$value) {
if ($value['logo'] != '') {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/'.$value['logo'];
} else {
$value['logo'] = 'http://localhost/abservetech/laravel/abserve_crud_travelz/public/300x300.jpg';
}
}
print_r($array);
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] =>
)
[4] => Array
(
[hotel_id] => 4
[logo] => image_4.jpg
)
)
Array
(
[0] => Array
(
[hotel_id] => 0
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_0.jpg
)
[1] => Array
(
[hotel_id] => 1
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_1.jpg
)
[2] => Array
(
[hotel_id] => 2
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_2.jpg
)
[3] => Array
(
[hotel_id] => 3
[logo] => http://some_addr.tld/some_dir/some_sub_dir/300x300.jpg
)
[4] => Array
(
[hotel_id] => 4
[logo] => http://some_addr.tld/some_dir/some_sub_dir/image_4.jpg
)
)
其中,$arr
是包含酒店的阵列,$res
将是修改后的阵列。您可以通过以下代码实现这一点:
$base = 'http://some_addr.tld/some_dir/some_sub_dir/';
$default = '300x300.jpg';
$res = array_map(
function($x) use ($base, $default)
{
if ( array_key_exists( 'logo', $x ) )
{
if ( !empty( $x['logo'] ) )
{
$x['logo'] = $base . $x['logo'];
}
else
{
$x['logo'] = $base . $default;
}
}
return $x;
}
, $arr);
您可以通过以下代码实现这一点:
$base = 'http://some_addr.tld/some_dir/some_sub_dir/';
$default = '300x300.jpg';
$res = array_map(
function($x) use ($base, $default)
{
if ( array_key_exists( 'logo', $x ) )
{
if ( !empty( $x['logo'] ) )
{
$x['logo'] = $base . $x['logo'];
}
else
{
$x['logo'] = $base . $default;
}
}
return $x;
}
, $arr);
到目前为止你尝试了什么?非常不清楚和模糊。。。我建议改变你的问题:你期望什么样的调用(输入)?输出是什么?你能提供一个工作案例吗?你能提供一些你已经做过的尝试吗?使用foreach循环,遍历整个数组,如果酒店id
匹配,用新的替换你的徽标。@Frayne Konok你能用一个例子解释一下吗..请说明你到目前为止做了什么?非常不清楚和模糊。。。我建议改变你的问题:你期望什么样的调用(输入)?输出是什么?你能提供一个工作案例吗?你能提供一些你做过的尝试吗?使用foreach循环,遍历整个数组,如果酒店id
匹配,用新的替换你的徽标。@Frayne Konok你能用一个例子解释一下吗..请简单明了:)…但我不知道你为什么在$value
之前使用&
,添加后,只会将结果作为参考。查看Hoo fine中的参考资料。谢谢:)简单易用:)…但我不知道为什么在添加该参考资料之后,在添加$value之前使用&
,而在添加该参考资料之后,只使用结果作为参考。查看Hoo fine中的参考资料。谢谢:)谢谢Frayne Konok,为什么为hotel\u id
赋值,在我的数组中,hotel\u id可以根据我的结果随机更改。为什么您在这里使用此行我发送了一些值,例如hotel\u id和该酒店的徽标???谢谢Frayne Konok,为什么您为酒店id
分配值,在我的数组中,酒店id可以根据我的结果随机更改为什么您在这里使用此行我发送了一些值,例如酒店id和该酒店的徽标。。???