За последние 24 часа нас посетили 61059 программистов и 1744 робота. Сейчас ищут 1058 программистов ...

как сделать строку из слов двух многомерных массивов???

Тема в разделе "PHP для новичков", создана пользователем arte4mi, 25 фев 2021.

  1. arte4mi

    arte4mi Новичок

    С нами с:
    4 фев 2021
    Сообщения:
    6
    Симпатии:
    0
    как сделать одну строку из слов двух многомерных массивов?
    PHP:
    1. <?php
    2. $arr1 = [
    3.  
    4.     100, 200, 300, "test", [50, "goo"], "text", 400, NULL, true,
    5.  
    6. ];
    7.  
    8. $arr2 = [
    9.  
    10.     NULL, 1000, [50, "too"], "foo", "bar", true, 100, 500, 1000, 100, false, NULL
    11.  
    12. ];
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    Пример строки приведите.
    Или уточните для чего это нужно.
     
  3. arte4mi

    arte4mi Новичок

    С нами с:
    4 фев 2021
    Сообщения:
    6
    Симпатии:
    0
    Должно получится : test goo text too foo bar
     
  4. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    То есть чисел в ней быть не должно?
     
  5. arte4mi

    arte4mi Новичок

    С нами с:
    4 фев 2021
    Сообщения:
    6
    Симпатии:
    0
    через implode не получается, или нужно еще через цикл
    нет только "string"
    --- Добавлено ---
    я написал код, но как вывесть его через переменные в новой строке?
    PHP:
    1. foreach ($arr2 as $key2 => $value2) {
    2.     if (is_string($value2)) {
    3.         echo $value2 . ' ';
    4.     } elseif (is_array($value2)) {
    5.         foreach ($value2 as $str2) {
    6.             if (is_string($str2)) {
    7.                 echo $str2 . ' ';
    8.             }
    9.         }
    10.     }
    11. }
    12.  
    13. foreach ($arr1 as $key1 => $value1) {
    14.     if (is_string($value1)) {
    15.         echo $value1 . ' ';
    16.     } elseif (is_array($value1)) {
    17.         foreach ($value1 as $str1) {
    18.             if (is_string($str1)) {
    19.                 echo $str1 . ' ';
    20.             }
    21.         }
    22.     }
    23. }
    --- Добавлено ---
    как результаты в echo приравнять к переменной, чтобы я после мог в одной строке используя конкатенацию вывести эти строки ?
    например : Результат получения строк - test goo text too foo bar
     
  6. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    PHP:
    1. <?php
    2. $arr1 = [
    3.  
    4.     100, 200, 300, "test", [50, "goo"], "text", 400, NULL, true,
    5.  
    6. ];
    7.  
    8. $arr2 = [
    9.  
    10.     NULL, 1000, [50, "too"], "foo", "bar", true, 100, 500, 1000, 100, false, NULL
    11.  
    12. ];
    13.  
    14. $str = '';
    15.  
    16. function add_to_str($value)
    17. {
    18.   global $str;
    19.  
    20.     if(is_string($value)) $str .= "$value ";
    21. }
    22.  
    23. array_walk_recursive(array_merge($arr1, $arr2), 'add_to_str');
    24.  
    25. echo $str;
    26.  
    27. ?>
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    @Drunkenmunky у array_walk_recursive первый аргумент как ссылка, ознакомься в доке
     
  8. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    Хорошо.
    Редко этим пользуюсь. Как понадобится, гляну.