php foreach: поместите каждый результат цикла в одну переменную - PullRequest
9 голосов
/ 20 августа 2010

Я думаю, что это, наверное, очень просто, но я могу разобраться!Как я могу поместить каждый результат цикла только в одну переменную?например,

$employeeAges;
$employeeAges["Lisa"] = "28";
$employeeAges["Jack"] = "16";
$employeeAges["Ryan"] = "35";
$employeeAges["Rachel"] = "46";
$employeeAges["Grace"] = "34";

foreach( $employeeAges as $key => $value){
    $string = $value.',';
}

echo $string; 
// result 34,
// but I want to get - 28,16,35,46,34, - as the result

Большое спасибо, Лау

Ответы [ 9 ]

24 голосов
/ 20 августа 2010

Вам необходимо использовать объединение ...

$string .= $value.',';

(обратите внимание на .) ...

9 голосов
/ 20 августа 2010

Попробуйте использовать implode для этого конкретного сценария.

$string = implode(',', $employeeAges);
7 голосов
/ 20 марта 2013

Вы также можете попробовать

$string = '';
foreach( $employeeAges as $value){
    $string .= $value.',';
}

Я попробовал это, и это работает.

3 голосов
/ 20 августа 2010
foreach( $employeeAges as $key => $value){
    $string .= $value.',';
}

Вы сбрасываете строковую переменную каждый раз в цикле.Выполнение вышеописанного объединяет $ value в $ string для каждой итерации цикла.

2 голосов
/ 20 августа 2010

Попробуйте

$string = '';
foreach( $employeeAges as $key => $value){
    $string .= $value.',';
}

С $ string = $ value. ','; вы перезаписываете $ string каждый раз, поэтому вы получаете только последнее значение.

2 голосов
/ 20 августа 2010

Хм, а как насчет этого?

$string = "";
foreach( $employeeAges as $key => $value){
    $string .= $value.',';
}

Вы сбрасываете переменную каждый раз, она начинается с пустой строки и каждый раз что-то добавляет. Но есть, вероятно, лучшие способы выполнения таких задач, например, взорвать в этом случае.

1 голос
/ 20 июня 2017

Ввод:

    $array = [1,2,3,4]

Сохранить все данные в одну строку :

    $string = "";
    foreach( $array as $key => $value){
        $string .= $value.',';
    }

Выход:

    $string = '1,2,3,4,'

Удалить последняя запятая :

    $string =  rtrim($string, ',');

Выход:

    $string = '1,2,3,4'

Дополнительная информация о:

конкатенация ;

RTRIM .

1 голос
/ 24 августа 2015

Попробуйте это эхо должно быть внутри, тогда {} стало нормально

    $employeeAges;
    $employeeAges["Lisa"] = "28";
    $employeeAges["Jack"] = "16";
    $employeeAges["Ryan"] = "35";
    $employeeAges["Rachel"] = "46";
    $employeeAges["Grace"] = "34";

    foreach( $employeeAges as $key => $value){
        $string = $value.',';
        echo $string; 

    }

    // result - 28,16,35,46,34, - as the result

или другим способом

foreach( $employeeAges as $key => $value){
            $string .= $value.',';

        }
            echo $string; 
1 голос
/ 20 августа 2010
$string .= $value.',';

Используйте объединение , поставьте точку перед знаком равенства.

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

$string = $string . $value . ',';
...