Как найти индекс foreach

Да! его возможно !, но вам нужно установить терминал termux на Android, а затем открыть терминал termux и написать:

apt-update
apt-install python
pip install django
django-admin startproject demo
cd demo
python manage.py runserver 0.0.0.0:8000

и все его, открыть localhost: 8000 в вашем браузере, увидеть изображение:

434
задан buræquete 14 December 2017 в 03:16
поделиться

6 ответов

foreach($array as $key=>$value) {
    // do stuff
}

$key индекс каждого $array элемент

806
ответ дан JakeGould 14 December 2017 в 03:16
поделиться

Можно поместить взлом в Ваш foreach, такой как поле, увеличенное на каждом просмотре, который является точно, что for цикл дает Вам в численно-индексном-массиве. Такое поле было бы псевдоиндексом, для которого нужно ручное управление (инкременты, и т.д.).

А foreach даст Вам Ваш индекс в форме Вашего $key значение, таким образом, такой взлом не должен быть необходимым.

, например, в foreach

$index = 0;
foreach($data as $key=>$val) {
    // Use $key as an index, or...

    // ... manage the index this way..
    echo "Index is $index\n";
    $index++;
}
152
ответ дан buræquete 14 December 2017 в 03:16
поделиться
  • 1
    Спасибо @Laurynas! Я заставляю ждать определенный ответ R, но Ваш ответ является большим начаться с. Однако Google Translate API (таким образом www.detectlanguage.com) будет отключен 1 декабря 2011 (Google превращает его на службу оплаты), – zoltanctoth 10 November 2011 в 11:35

Можно создать $i внешняя сторона цикл и сделать $i++ у основания цикла.

15
ответ дан Ram Sharma 14 December 2017 в 03:16
поделиться
  • 1
    Да, это использовало Google Translate для примера перевода (я переместил его сюда: detectlanguage.com/translate ). После Вашего комментария я создал веб-сервис, который основан на детекторе языка C (не на Google Translate). – Laurynas 12 November 2011 в 13:39

Jonathan корректен. PHP выстраивает действие как отображение таблицы карты ключи к значениям. в некоторых случаях можно получить индекс, если массив будет определен, такой как

$var = array(2,5);

for ($i = 0; $i < count($var); $i++) {
    echo $var[$i]."\n";
}

то вывод будет

2
5

, в этом случае, каждый элемент в массиве имеет узнаваемый индекс, но если Вы тогда делаете что-то как следующий

$var = array_push($var,10);

for ($i = 0; $i < count($var); $i++) {
    echo $var[$i]."\n";
}

, Вы не получаете вывода. Это происходит, потому что массивы в PHP не являются линейными структурами как, они находятся на большинстве языков. Они больше похожи на хэш-таблицы, которые могут или не могут иметь ключей для всех сохраненных значений. Следовательно foreach не использует индексы для проверки по ним, потому что у них только есть индекс, если массив определяется. Если у Вас должен быть индекс, удостоверьтесь, что Ваши массивы полностью определяются прежде, чем проверить по ним и используют для цикла.

4
ответ дан The Brawny Man 14 December 2017 в 03:16
поделиться

У Owen есть хороший ответ. Если Вы хотите просто ключ, и Вы работаете с массивом, это могло бы также быть полезно.

foreach(array_keys($array) as $key) {
//  do stuff
}
18
ответ дан Zoredache 14 December 2017 в 03:16
поделиться
  • 1
    Yay, который работает вполне прилично! Действительно ли возможно, что я только что проверил этот сайт приблизительно 10 часов назад, и это было основано на Google Translate то время?:) – zoltanctoth 10 November 2011 в 21:45

Массивы PHP имеют внутренние указатели, так попробуйте это:

foreach($array as $key => $value){
   $index = current($array);
}

Работы хорошо для меня (только очень предварительно протестированный, хотя).

5
ответ дан sth 14 December 2017 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: