我试图将正在通过管道传输的已获取网址替换为数组
这是原始代码
$res['images'] = array();
$res['images'][] = (string)$item->LargeImage->URL;
if (count($item->ImageSets) > 0) {
$count = 0;
foreach ($item->ImageSets->ImageSet as $key => $value) {
if ($count > 5) continue;
if (isset($value->LargeImage->URL) && $count > 0) {
$res['images'][] = (string)$value->LargeImage->URL;
}
$count++;
}
}
我需要做的是替换变量$ rest ['images'] []或我感到困惑的$ item,有类似的东西
$res['images'] = array();
$res['imagesLow'][] = (string)$item->LargeImage->URL;
$res['Images'][] = preg_replace('/\\.[^.\\s]{3,4}$/', '._UL1500_.jpg', $res['imagesLow'][]);
if (count($item->ImageSets) > 0) {
$count = 0;
foreach ($item->ImageSets->ImageSet as $key => $value) {
if ($count > 5) continue;
if (isset($value->LargeImage->URL) && $count > 0) {
$res['images'][] = (string)$value->LargeImage->URL;
}
$count++;
}
}
但是这对于$ res ['imagesLow'] []中的最后一个变量是不可接受的。
$res['Images'][] = preg_replace('/\\.[^.\\s]{3,4}$/', '._UL1500_.jpg', $res['imagesLow'][]);
它给我错误500 我做错了什么?
主要的想法是用“ .UL1500 .jpg”替换网址的获取的.JPG部分
答案 0 :(得分:0)
第$res['imagesLow'][] = (string)$item->LargeImage->URL;
行向$res['imagesLow']
数组添加了一个新元素。
要检索该值,您需要$res['imagesLow']
数组的最后一个值。
您可以获取最后一个值end($res['imagesLow'])
但是,再次使用原始变量(string)$item->LargeImage->URL
会更有意义
修改强>
替换行:
$res['Images'][] = preg_replace('/\\.[^.\\s]{3,4}$/', '._UL1500_.jpg', $res['imagesLow'][])
使用:
$res['Images'][] = preg_replace('/\\.[^.\\s]{3,4}$/', '._UL1500_.jpg', (string)$item->LargeImage->URL);
答案 1 :(得分:0)
如果要将函数应用于数组的每个元素,通常使用array_map
。
这看起来像这样
$mapped = array_map(function($item) {
return something with $item;
}, $array);
如果是preg_replace
,您也可以将数组作为主题参数传递。如果传递数组,则还返回一个数组。
$res['Images'] = preg_replace('/\\.[^.\\s]{3,4}$/', '._UL1500_.jpg', $res['imagesLow']);