2016-09-15 23 views
-1

どのように私は配列を作成することができます知っていますか?PHPは配列を作成します

$string = '3-1-0-1.11,3-1-1-1.12,3-1-2-1.13,3-1-3-1.14,3-2-0-1.02,3-2-1-1.03,3-2-2-1.04,3-2-3-1.05,3-2-4-1.06,3-3-0-3.23,3-3-1-3.24,3-3-2-3.25,3-3-3-3.26'; 

$array = explode(',', $string); 
$last_entry = null; 

foreach ($array as $current_entry) { 
    $first_char = $current_entry[2]; // first Sign 
    if ($first_char != $last_entry) { 
     echo '<h2>'. $first_char . '</h2><br>'; 
    } 
    echo $current_entry[4] . '<br>'; 
    $last_entry = $first_char; 
} 

私はこのような配列を必要とする:

Array 
(
[1] => Array 
    (
     [0] => 0 
     [1] => 1 
     [2] => 2 
    ) 

[2] => Array 
    (
     [0] => 0 
     [1] => 1 
     [2] => 2 
     [3] => 3 
     [4] => 4 
     [5] => 5 
    ) 

[3] => Array 
    (
     [0] => 1 
     [1] => 2 
     [2] => 3 
     [3] => 4 
    ) 
) 

最初の数3及びその他の数値はカンマの後に3は重要ではありません。 重要な数字は、$ arrayの値の2番目と3番目の数字です。 カテゴリが必要です。例:最初の(2番目の)番号が1の場合、カテゴリ1を作成し、最初の(2番目の)番号actualが1のサブカテゴリ1を作成します。

+1

本当の結果を出せますか?あなたの文字列からしたいですか? 少なくともそれの始まりですか? – Dmytrechko

+0

そしてplsは質問の名前を変更し、他人を誤解させてしまいます – Dmytrechko

答えて

0

アレイを作成するには、array()フィーチャを使用して宣言する必要があります。私は空の配列を作成しました。

$array = array(); 

値を持つ配列は、配列に値を追加するには、この

$array = array("string", "string2", "string3"); 

のように見える、あなたがarray_pushメソッドを使用します。多次元配列で

array_push($array, "string4"); 

、以下、次いで内側アレイを追加する配列を宣言

$array = array("string"=>array("innerstring", "innerstring2"), "string2" => array("innerstring3", "innerstring4"), "string3" => array("innerstring5", "innerstring6")); 

及び手続き

$array=array(array("string", "innerstring", "innerstring2",), array("string2", "innerstring3", "innerstring4"), array("string3", "innerstring5", "innerstring6")); 
+1

ありがとうございますが、私の配列はより複雑です。 – user6834389

+0

多次元配列の作成方法に関するいくつかのガイドラインを追加しました – AntonyMN

0

をobjct配向され、次のスクリプトを試してみてください:

$string = '3-1-0-1.11,3-1-1-1.12,3-1-2-1.13,3-1-3-1.14,3-2-0-1.02,3-2-1-1.03,3-2-2-1.04,3-2-3-1.05,3-2-4-1.06,3-3-0-3.23,3-3-1-3.24,3-3-2-3.25,3-3-3-3.26'; 

foreach(explode(',', $string) as $tpl) { 
    $tpl = explode('-', $tpl); 
    $tpl[3] = explode('.', $tpl[3]); 
    $result[$tpl[1]][$tpl[2]][$tpl[3][0]] = !empty($tpl[3][1]) ? $tpl[3][1] : null; 
} 
var_dump($result); 
関連する問題