PHP foreach несколько каждый и как - PullRequest
1 голос
/ 14 июля 2011

Я пытаюсь сохранить код и иметь несколько php для каждого процесса одновременно.Возможно ли это.

$holes9 = string(lots of information separated by,)
$stroke = string(other info separated by,)
$index = string(other info separated by,)

      $holes9 = explode(",",$holes9);
      foreach ($holes9 as $holes) {
          echo '<div class="hole"><b>'.$holes.'</b></div>
<div class="stroke"></div>
<div class="index"></div>
';
      };

Как вы можете видеть, мой foreach относится только к $ hole9 как $ hole.Как мне получить две другие информации?

Ответы [ 5 ]

2 голосов
/ 14 июля 2011

Если $holes, $stroke и $index имеют одинаковое количество "элементов", достаточно одного foreach:

$holes9 = string(lots of information separated by,)
$stroke = string(other info separated by,)
$index = string(other info separated by,)

$holes9 = explode(",",$holes9);
$stroke = explode(",",$stroke);
$index = explode(",",$index);

foreach ($holes9 as $id => $holes) {
    echo '
        <div class="hole"><b>'.$holes9[$id].'</b></div>
        <div class="stroke">'.$stroke[$id].'</div>
        <div class="index">'.$index[$id].'</div>
    ';
};
2 голосов
/ 14 июля 2011

Если строки имеют одинаковую длину разделения (т.е. они будут иметь одинаковое количество запятых ,), то вы можете сделать это следующим образом:

$holes9 = 'lots, of information, separated, by a, comma';
$stroke = 'other, info, separated, by, a comma';
$index = 'another, info, string, separated by, a comma';

$holes9 = explode(',',$holes9);
$strokes = explode(',', $strokes);
$index = explode(',', $index);

foreach ($holes9 as $id => $holes) {
    echo '<div class="hole"><b>'.$holes.'</b></div>'.
         '<div class="stroke">'.$strokes[$id].'</div>'.
         '<div class="index">'.$index[$id].'</div>';
};
1 голос
/ 14 июля 2011
$holes9 = explode(",",$holes9);
$stroke = explode(",",$stroke); // explode these as well
$index = explode(",",$index);

foreach ($holes9 as $n => $holes) // take advantage of referencing the numeric key
{
  echo '<div class="hole"><b>'.$holes.'</b></div>';
  echo '<div class="stroke">'.$stroke[$n].'</div>';
  echo '<div class="index">'.$index[$n].'</div>';
}

Поскольку explode() будет генерировать числовые ключи, используйте способность foreach для получения ключа и значения.Первый эхо использует значение, затем повторно использует ключ (в данном случае $n) для ссылки на те же индексы элементов в двух других массивах ($stroke и $index, предполагая, что они будут иметь одинаковое количество элементов.)

0 голосов
/ 14 июля 2011

Предположим, что ваши 3 строки содержат одинаковое количество элементов, которые вы можете использовать вместо foreach, например:

$holes9 = explode(",",$holes9);
$stroke = explode(",",$stroke);
$index = explode(",",$index);

for($i =0; $i < ;$i++){

echo '<div class="hole"><b>'.$holes9[$i].'</b></div>
<div class="stroke">'.$stroke[$i].'</div>
<div class="index">'.$index[$i].'</div>';
}
0 голосов
/ 14 июля 2011

Если длина всех списков одинакова, вы можете сделать это:

$holes9 = string(lots of information separated by,)
$stroke = string(other info separated by,)
$index = string(other info separated by,)

      $holes9 = explode(",",$holes9);
      foreach ($holes9 as $key => $holes) {
          echo '<div class="hole"><b>'.$holes.'</b></div>
<div class="stroke">'.$stroke[$key].'</div>
<div class="index">'.$index[$key].'</div>
';
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...