2016-07-26 9 views
0

私はWebプロジェクトで作業していますが、私が知る必要があることは、配列アイテムの番号を取得し、その番号を使用して別の配列からアイテムを取得する方法ですブートストラップパネルに2つの入力ボックスを動的に追加するページを設定しました。動的フォームのデータを収集しフォーマットする

<div class="panel panel-default"> 
    <div class="panel-heading"> 
     <a data-toggle="collapse" data-parent="#accordion" href="#<?php echo $index; ?>"> 
      <h4 class="panel-title"> 
       <?php echo $menu[0]; ?> <b class="caret pull-right"></b> 
      </h4> 
     </a> 
    </div> 
    <div id="<?php echo $index; ?>" class="panel-collapse collapse"> 
     <div class="panel-body"> 

      <div class="form-group"> 
       <label for="menu_name[]">Name:</label> 
       <input id="menu_name[]" name="menu_name[]"placeholder="Name"> 
      </div> 

      <div class="form-group"> 
       <label for="menu_link[]">Link:</label> 
       <input id="menu_link[]" name="menu_link[]" value="<?php echo $menu[1]; ?>" placeholder="URL"> 
      </div> 

      <div class="btn-group pull-right"> 
       <button class="btn btn-danger" type="submit" name="delete" value="<?php echo $index; ?>"><i class="fa fa-trash"></i> Delete</button> 
      </div> 

     </div> 
    </div> 

この形式は、各メニュー項目のテキストやリンクを持つ配列を作成するには、メニューを追加するためのもので、私がフォームを送信するとき、これは私が得る結果である:

[["Home", "News"], ["http://localhost/", "http://localhost/news/"]] 

しかし、私配列間で2つのオプションを分割するのではなく、個々の配列内の各メニュー項目を整列させるように配列をフォーマットしたいと考えています。

[["Home", "http://localhost"], ["News", "http://localhost/news"]] 

私はこれを行う方法がわかりませんし、解決策や例を見つけようとしていますが、何も見つかりませんでした。私はarray_searchに関するいくつかの調査を行っていましたが、わかりませんそれが私が望むものなら。

+0

print_r($output); 

とJSON uがあなたの現在の配列を生成のコードのいくつかの作品を投稿することができますか? –

+0

私は与えられた配列がMySQLから文字列として選択され、jsonを使ってデコードされていることがわかりません。 – Elxafil

+0

がそれをつかまえた。ですから、それらをフォームに入れるために配列を操作したいと思っています。 –

答えて

1

問題について間違っていない場合、これが解決策です。

$json = '[["Home", "News"], ["http://localhost/", "http://localhost/news/"]]'; 

list($names, $links) = json_decode($json); 

for ($k=0; $k<count($names); $k++) 
    echo sprintf('Link is "%s" for "%s"', $links[$k], $names[$k]).PHP_EOL; 

UPDATE

$json = '[["Home", "News"], ["http://localhost/", "http://localhost/news/"]]'; 
$output = array(); 

list($names, $links) = json_decode($json); 

for ($k=0; $k<count($names); $k++) 
    $output[] = array($names[$k], $links[$k]); 

次に、あなたがしますprint_r関数で配列を見ることができます。 json_encode

echo json_encode($output); 
+0

これは私を助けにはならない、私はちょうどそれは、デフォルトの配列を示すと、それは私がそれを変更したい方法を示しています。 – Elxafil

+0

私はちょうど私の答えを更新する –

関連する問題