Вопрос:

Поместите строку между каждым массивом в массиве - PHP

php arrays array-push

85 просмотра

3 ответа

66 Репутация автора

Допустим, у меня есть текстовый файл с 9 предложениями (может быть и больше! Это всего лишь пример), затем я читаю этот файл в своем php, разбиваю его на каждые 3 предложения и сохраняю его в переменной, чтобы он приводил к этому массиву:

$table = array(
   array(
        'text number 1',
        'text number 2',
        'text number 3'
    ),
   array(
        'text number 4',
        'text number 5',
        'text number 6'
    ),
   array(
        'text number 7',
        'text number 8',
        'text number 9'
    ),
 );

а затем я хочу добавить эту строку ( '[br/]') между каждым массивом внутри, чтобы он выглядел:

$table = array(
   array(
        'text number 1',
        'text number 2',
        'text number 3'
    ),

   '[br/]',  // <<< ---- the string here

   array(
        'text number 4',
        'text number 5',
        'text number 6'
    ),

   '[br/]',  // <<< ---- the string here

   array(
        'text number 7',
        'text number 8',
        'text number 9'
    ),
);

Я уже пробовал это:

 foreach( $table as $key => $row )
  $output[] = array_push($row, "[br /]");

Что логически должно было сработать, но это не сработало.

Любая помощь будет оценена.

Автор: kakashi senpai Источник Размещён: 29.11.2017 05:01

Ответы (3)


2 плюса

3210 Репутация автора

http://php.net/manual/en/function.array-push.php

Должен прочитать руководство, братан. array_pushобновляет первый параметр, который вы передаете. Таким образом, правильный синтаксис выглядит примерно так.

foreach( $table as $key => $row )
  array_push($output, $row, "[br /]");
Автор: bassxzero Размещён: 29.11.2017 05:08

3 плюса

861 Репутация автора

Решение

Вы можете просто переназначить массив, используя что-то вроде этого:

$result = [];
foreach($table as $item) {
    $result[] = $item;
    $result[] = '[br/]';
}
Автор: Syncro Размещён: 29.11.2017 05:08

1 плюс

312 Репутация автора

Читая ваш комментарий и пытаясь понять, чего вы пытаетесь достичь, я бы порекомендовал вам прочитать все предложения в одном массиве, а затем использовать

$chunks = array_chunk($input_array, 3);

разделить его на желаемое количество предложений (например, 3) на массив, а затем выполнить итерацию по нему и взорвать каждый отдельный массив, используя клей в качестве клея.

$result = "";
foreach ($chunks as $chunk) {
    $result += implode("<br>", $chunk)
}
echo $result;
Автор: Chris P. Bacon Размещён: 29.11.2017 05:33
Вопросы из категории :
32x32