2017-03-11 2 views
-2

配列のキーとして事前定義の整数を与える必要があります(これはデータベースの整数フィールドに格納されるため、整数キーが必要です)。文字列をキーとして指定できますが、整数で送信しようとすると、配列はキーの指定を無視し、outomaticalls 0,1,2、..をキーとして割り当てます。ここでPHP配列:与えられた整数をキーにする方法

私は上記のようなコードを実行した場合

public function TestArray() 
    { 
     $valuesForIndexOfArray = array(100,101,102); 
     //$valuesForIndexOfArray = array('l','m','n','o','p'); // in this case the string values are used in the index 
     $resultArray = array(); 
     foreach ($valuesForIndexOfArray as $singleIndexValue){ 
      $dummyValue = "dummytext-".$singleIndexValue;  
      $indexOfResultArray = $singleIndexValue; 
      //$indexOfResultArray = $indexOfResultArray." "; // !!! only if made to string, singleAnswerId appears in index, otherwise autoindex 0,1,2,   
      $newElementForResultArray = array($indexOfResultArray => $dummyValue); 
      $resultArray = array_merge($resultArray, $newElementForResultArray); 
     } 
     return ($resultArray); 
    } 

は、私が得る私のサンプルコード(symfonyの中のダンプで、小枝)

enter image description here

私が使用している場合は// $ indexOfResultArray = $ indexOfResultArray。 "";しかし、私に

enter image description here

答えて

0

を助けていない文字列として、私はあなたが本当にについて尋ねているか理解する問題があります - そしてそれ私は、インデックスはほとんどそれが必要として見える文字列を作ります。整数インデックスは完全に細かい事であり、あなたはあなたが好きにそれを設定することができます。

予想通り

array(2) { 
    [1]=> 
    string(3) "foo" 
    [100]=> 
    string(3) "bar" 
} 
array(2) { 
    [1]=> 
    string(3) "foo" 
    [100]=> 
    string(3) "bar" 
} 

を生成する

<?php 
$a = array(
     1 => 'foo', 
     100 => 'bar', 
); 

var_dump($a); 

$a = array(); 
$a[1] = 'foo'; 
$a[100] = 'bar'; 

var_dump($a); 

を。

0

なぜ新しい配列を作成して、その都度マージしていますか?値をちょうど追加してみてください:

public function TestArray() 
     { 
      $valuesForIndexOfArray = array(100,101,102); 
      $resultArray = array(); 
      foreach ($valuesForIndexOfArray as $singleIndexValue){ 
       $dummyValue = "dummytext-".$singleIndexValue;  
       $resultArray[$singleIndexValue] = $dummyValue 
      } 
      return $resultArray; 
     } 
+0

あなたは 'return'のための角括弧を必要としません。これは関数ではありません。 –

+0

提供された既存のコードをコピーしました。しかし、あなたは正しいです、それを更新します。 – Armin

+0

ありがとうございます - 完璧に動作します – Mike

関連する問題