ventures sánchez saldum pablo moreno hawkers facturacion david alejandro php foreach

php - saldum - hawkers pablo sánchez



combinar dos bucles foreach (3)

La solución obvia:

$output1 = array(); $output2 = array(); foreach ($items as $key => $item) { $keywords = explode('' '', $qsvarus); $title[$key] = preg_replace(''//b(''.implode(''|'', $keywords).'')/b(?![^<]*[>])/i'', ''<b>$0</b>'', $title[$key]); $infoo[$key] = preg_replace(''//b(''.implode(''|'', $keywords).'')/b(?![^<]*[>])/i'', ''<b>$0</b>'', $infoo[$key]); $output1[] = ''<tr><td>''.$title[$key].$infoo[$key].$item.''</tr></td>''; } foreach ($linkai as $key => $linkas) { $i++; $a1 = $linkas[1]; $a2 = str_replace("download/", "files/", $a1); $a3 = str_replace("&","&amp;", $a2); $a4 = str_replace("amp;nbsp;","nbsp;", $a3); $output2[] = "<div class=/"bgframe".str_replace("/i/", "/IMG/", $a4)."</div></div>"; } $output = array_map( null, $output1, $output2 ); foreach ( $output as $lines ) { $lines = array_filter( $lines ); foreach ( $lines as $line ) { echo $line; } }

Tengo dos bucles foreach: primero uno:

foreach ($items as $key => $item) { $keywords = explode('' '', $qsvarus); $title[$key] = preg_replace(''//b(''.implode(''|'', $keywords).'')/b(?![^<]*[>])/i'', ''<b>$0</b>'', $title[$key]); $infoo[$key] = preg_replace(''//b(''.implode(''|'', $keywords).'')/b(?![^<]*[>])/i'', ''<b>$0</b>'', $infoo[$key]); echo ''<tr><td>''.$title[$key].$infoo[$key].$item.''</tr></td>''; }

2º:

foreach ($linkai as $key => $linkas) { $i++; $a1 = $linkas[1]; $a2 = str_replace("download/", "files/", $a1); $a3 = str_replace("&","&amp;", $a2); $a4 = str_replace("amp;nbsp;","nbsp;", $a3); echo "<div class=/"bgframe".str_replace("/i/", "/IMG/", $a4)."</div></div>"; }

La pregunta es cómo hacer que esos dos bucles muestren resultados como este:

Result1 from Loop1 Result1 from Loop2 Result2 from Loop1 Result2 from Loop2 Result3 from Loop1 Result3 from Loop2 And so on...

En lugar de:

Result1 from Loop1 Result2 from Loop1 Result3 from Loop1 ... Result1 from Loop2 Result2 from Loop2 Result3 from Loop2

Gracias


La mejor respuesta es probablemente de Jack, pero pensé que mi solución era interesante. También intenté mejorar tu código:

do { if ($item = current($items)) { $key = key($items); $keywords = str_replace('' '', ''|''); list($infoo_str, $title_str) = preg_replace( "//b({$keywords})/b(?![^<]*[>])/i", ''<b>$0</b>'', array($infoo[$key], $title[$key]) ); echo "<tr><td>{$infoo_str}{$title_str}{$item}</tr></td>"; next($items); } if ($linkas = current($linkai)) { $characters = array(''download/'', ''&'', ''amp;nbsp;'', ''/i/''); $replacements = array(''files/'', ''&amp;'', ''&nbsp;'', ''/IMG/''); $linkas = str_replace($characters, $replacements, $linkas); echo "<div class=''bgframe{$linkas}''</div></div>"; next($linkai); } } while ($item or $linkas);


Puede usar MultipleIterator para esto:

$m = new MultipleIterator(); $m->attachIterator(new ArrayIterator($items), ''item''); $m->attachIterator(new ArrayIterator($linkai), ''linkas''); foreach ($m as $unit) { // $unit[''item''] contains an entry from $items // $unit[''linkas''] contains an entry from $linkai // your logic here }