并行foreach循环

时间:2016-06-25 18:33:13

标签: php loops foreach parallel-processing

我有两个foreach循环:

第一

 foreach ($r['result']['achievements']['0']['achievements'] as $achievement){
  if(!empty($achievement['rewardItems'])){
    foreach ($achievement['rewardItems'] as $item){
      echo "$item[name] $item[id]<br/>".PHP_EOL;
    }
  }
}

第二

foreach ($r['result']['achievements']['0']['achievements'] as $item) echo '

                        <li class="span3 clearfix" data-tag=', $item['qualityId'], '>
                                <a
                                        href="//de.wowhead.com/achievement=', $item['id'], '"
                                        class="', $item['qualityId'], '"
                                >
                                        <img
                                                src="http://wow.zamimg.com/images/wow/icons/large/', $item['icon'], '.jpg"
                                                alt="', htmlspecialchars($item['name']), '"
                                        >
                                </a>
', $item['name'], '.
                        </li>';

他们俩都在为自己奔跑。但我需要它们并行运行,因为我需要将第一个foreach循环的结果转换为第二个循环的结果。

1 个答案:

答案 0 :(得分:0)

我认为,您不需要并行处理。你只需要一个二级循环。如果它有帮助,请尝试使用此代码。

    foreach ($r['result']['achievements']['0']['achievements'] as $item) {
        echo '<li class="span3 clearfix" data-tag=', $item['qualityId'], '>';

        if(!empty($item['rewardItems'])){
            foreach ($item['rewardItems'] as $item1){
              echo "$item1[name] $item1[id]<br/>".PHP_EOL;
            }
        }

        echo '                           <a
                                            href="//de.wowhead.com/achievement=', $item['id'], '"
                                            class="', $item['qualityId'], '"
                                    >
                                            <img
                                                    src="http://wow.zamimg.com/images/wow/icons/large/', $item['icon'], '.jpg"
                                                    alt="', htmlspecialchars($item['name']), '"
                                            >
                                    </a>
    ', $item['name'], '.
                            </li>';
                        }

请提供您当前的输出和所需的输出。这将使我们更清楚你想做什么。