php循环(计数数组)/次

时间:2016-01-20 17:19:58

标签: php arrays loops count

我有一个函数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()会有更好的方法吗?)

2 个答案:

答案 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