PHP извлечение foreach - PullRequest
       6

PHP извлечение foreach

0 голосов
/ 20 февраля 2020

Пожалуйста, кто-нибудь может мне помочь, у меня есть следующий массив и я хотел бы извлечь данные


array(2) {
  [0]=>
  array(3) {
    ["from"]=>
    string(7) "coltest"
    ["to"]=>
    string(13) "+447000000000"
    ["body"]=>
    string(12) "Hello World!"
  }
  [1]=>
  array(3) {
    ["from"]=>
    string(8) "coltest2"
    ["to"]=>
    string(14) "+447000000001"
    ["body"]=>
    string(13) "Hello World2!"
  }
}

Я могу извлечь первый, используя

extract($array[0]);
echo("$from $to $body"); 

Но я бы хотел передать каждое $ from, $ to и $ body моему API поставщиков - наверное, мне нужно написать оператор foreach, но я не знаю, с чего начать

1 Ответ

2 голосов
/ 20 февраля 2020

Если вы хотите, чтобы эти отдельные переменные в каждой итерации foreach l oop, вы можете использовать list().

foreach (array as list($from, $to, $body)) {
    echo "$from $to $body";
}

extract также будет работать в foreach , но я обычно избегаю его использовать. Это может привести к непреднамеренным последствиям, если оно случайно будет применено к неправильному объекту, и потенциально может затруднить понимание того, откуда взялась переменная, когда вы читаете код.

foreach (array as $item) {
    extract($item);
    echo "$from $to $body";
}

Но имейте в виду, что вы на самом деле отдельные переменные вообще не нужны.

foreach (array as $item) {
    echo "$item[from] $item[to] $item[body]";
}

Кстати, echo - это , а не функция , поэтому вам не нужно использовать скобки с ней.

...