У меня есть несколько файлов внутри массива

name1
name2
name3
name4

Я считаю это количество файлов следующим образом:

$total = count($files); // total of 4 files for example

Но я хотел бы понять, как оператор for следует использовать вместе с foreach.

for ($x=1; $x<=$total; $x++) {
foreach($files as $file)
  {  
    echo "http://$file";
    echo $x;
  }
}

Результат этого:

name1  1
name1  1 
name1  1
name1  1

name1  2
name1  2
name1  2
name1  2

name1  3
name1  3
name1  3
name1  3

name1  4
name1  4
name1  4
name1  4

name1  5
name1  5
name1  5
name1  5

Я хотел бы, чтобы результат был

name1  1
name2  2
name3  3
name4  4

Но мне трудно понять логику использования foreach и for вместе.

-2
Gislef 24 Сен 2018 в 18:42

2 ответа

Лучший ответ

Вы можете использовать один или другой, вам не нужны оба:

$x = 1;

foreach($files as $file)
{  
    echo "http://$file";
    echo $x++;
}

Или

for($x = 0; $x < $total; $x++)
{
    echo "http://$files[$x]";
    echo $x + 1; // arrays are zero indexed, so need to add 1
}
1
Sam 24 Сен 2018 в 15:55

Увеличение $x параллельно с выводом имени файла:

$x = 1;
foreach($files as $file)
{  
   echo "http://$file";
   echo $x;
   $x++;
}
1
u_mulder 24 Сен 2018 в 15:50