我有一个函数geturls()
,它将$urls
作为数组返回
$urls[1] $urls[2] .....$urls[44]
但我不知道$urls
的数量(有时是44 45 77 ......)
我想多次循环(在这种情况下为44但可能会改变)
所以这是我的剧本
function geturls($xml){
//my function
}
$urls = geturls($xml);
$counti = count($urls);
for ($i = 1; $i <= $counti; $i++) {
$modifiedurl = modify($urls[$i]);
echo $modifiedurl;
}
有更好的方法吗(我确定没有使用count()会有更好的方法吗?)
答案 0 :(得分:1)
您可以使用数组映射函数遍历数组元素。
$modifiedUrls = array_map('modify', $urls);
刚刚对我们的答案进行了测试。
<?php
$start = microtime(true);
$urls = range(1, 1000000);
function modify($url)
{
return "modified_".$url;
}
$modified_urls = [];
foreach ($urls as $url) {
$modified_urls[] = modify($url);
}
// $modified_urls = array_map('modify', $urls);
$end = microtime(true);
$time_elapsed_secs = $end - $start;
echo $time_elapsed_secs;
foreach:0.202~ms
array_map:0.130~s ms
答案 1 :(得分:0)
使用foreach()
:
$modified_urls = []; //create new array for modified URLs
foreach($urls as $url){
$modified_urls[] = modify($url); //modify this URL and add it to the array
}
print_r($modified_urls); //output the array