2015-03-27 2 views
1

Я пытаюсь вытолкнуть некоторые элементы из циклов, чтобы получить строку символов.Обернуть элемент из цикла в элемент с конкатенацией

У меня есть массив $liste_mots:

0 => 
    array (size=5) 
     'mot' => 
     array (size=7) 
      0 => 
      array (size=5) 
       'mot' => string 'My' 
       'start' => float 0 
       'end' => float 1 
      1 => 
      array (size=5) 
       'mot' => string 'Name' 
       'start' => float 2 
       'end' => float 3   
     'ID' => float 1 

1 => 
    array (size=5) 
     'mot' => 
     array (size=7) 
      0 => 
      array (size=5) 
       'mot' => string 'Is' 
       'start' => float 4 
       'end' => float 5 
      1 => 
      array (size=5) 
       'mot' => string 'Zooboo' 
       'start' => float 6 
       'end' => float 7   
     'ID' => float 2 

Till здесь, никаких проблем ...

То, что я пытаюсь иметь, не что-то вроде этого:

<div id='1'><span data-start='0' data-end='1'>My</span><span data-start='2' data-end='3'>Name</span></div><div id='2'><span data-start='4' data-end='5'>Is</span><span data-start='6' data-end='7'>Zooboo</span></div> 

I сделал это:

$response = ""; 
     foreach ($liste_mots as $key => $item) { 
      $response = "<div id='" . $item['ID'] . "'>"; 
       foreach ($liste_mots[$key]['mot'] as $idx => $itm) { 
        $response .= "<span data-start='".$itm['start']."' data-end='".$itm['end']."'>" . $itm['mot'] . "</span></div>"; 
       } 
      } 
var_dump($response); die; 

, но с var_dump У меня только последние div без span ...

Где я ошибаюсь, пожалуйста? Спасибо !

+0

Могли бы вы вставить вывод 'var_export ($ liste_mot)' так может мы можем работать над этим? – D4V1D

ответ

1

Вы каждый раз переустанавливаете $response через внешний контур. Вам нужно использовать конкатенацию, как и во внутреннем цикле. Вам также необходимо закончить div во внешнем контуре, а не после каждого span во внутреннем цикле.

$response = ""; 
foreach ($liste_mots as $key => $item) { 
    $response .= "<div id='" . $item['ID'] . "'>"; 
    foreach ($liste_mots[$key]['mot'] as $idx => $itm) { 
     $response .= "<span data-start='".$itm['start']."' data-end='".$itm['end']."'>" . $itm['mot'] . "</span>"; 
    } 
    $response .= "</div>"; 
} 
var_dump($response); die; 
+0

Я уже пробовал это, но var_dump возвращает меня: 'string '' (length = 0)' – Zagloo

+0

Это может произойти только в том случае, если '$ liste_mots' пуст. – Barmar

+0

Убедитесь, что включено сообщение об ошибках. Возможно, вы где-то ошиблись. – Barmar

1

вы закрываете DIV в неправильном цикле он хотел бы это

$response = ""; 
foreach ($liste_mots as $key => $item) { 
    $response .= "<div id='" . $item['ID'] . "'>"; 
     foreach ($liste_mots[$key]['mot'] as $idx => $itm) { 
      $response .= "<span data-start='".$itm['start']."' data-end='".$itm['end']."'>" . $item['mot'] . "</span>"; 
     } 
    $response .= "</div>"; 
} 
var_dump($response); die; 
+0

Я уже пробовал это, но var_dump возвращает меня: 'string '' (length = 0)' – Zagloo

Смежные вопросы