2017-11-17 2 views
1

連想配列に値を格納するために多くの回答がありました(重複しないようにしてください)が、PHPでその配列を返したいと思います。ここに私のコードです。すべての値を出力しますが、最初の値だけを返します。配列全体が別の関数で使用されるように戻したい。 1アレイに追加する[] =をどのように使用するか連想配列に複数の値を格納し、その配列をPHPで返します

//first, initialize empty array: 
$Col_array = []; 

//do the loop thing. 
while(...){ 

    //inside the loop: 

    //add to array: 
    $Col_array []= array('sku'=>"".$myarray[$k][$k]."",'price'=>$price_trimed); 


}//loop ends here 
print_r($Col_array); //<----- all values. 
return $Col_array; 

予告:

function xml_parsing($response,$size,$array) 
{ 
    for($k=0;$k<$size;$k++) 
    { 
     $price=(string)$response->Items->Item[$k]->ItemAttributes->ListPrice->FormattedPrice; 
     $myarray[$k]=explode(',',$array["ItemId"]); 
     $update_fields=array('sku','price'); 
     if($price=='') 
     { 
      $Col_array=array('sku'=>"".$myarray[$k][$k]."",'price'=>"-1"); 
     } 
     else 
     { 
      $price_trimed=ltrim($price,'$'); 
      $Col_array=array('sku'=>"".$myarray[$k][$k]."",'price'=>$price_trimed); 
      // I store the values here using a loop 
     } 
    } 
    print_r($Col_array); 
    return $col_array; //but here it return only first value 
         // But I want to return the whole array** 
         // I can't return it inside loop because it terminates 
         // the loop and the function        
} 
+0

$のcol_arrayにお答えしたい!= $ Col_array – nogad

+0

は、単にFALSEを返すと思いませんか?私はそれがポスターの部分のタイプミスだと思う。 – Forbs

+0

はいここでコードを貼り付けている間に私が作ったちょうど入力ミス。 –

答えて

0

ここで私は自分の質問

 function xml_parsing($response,$size,$array) 
     { 



    for($k=0;$k<$size;$k++) 
      { 


    $price=(string)$response->Items->Item[$k]->ItemAttributes->ListPrice- 
    >FormattedPrice; 



    //echo "PKkkkkkkkk".$array["ItemId"]."llllll"; 
    $myarray[$k]=explode(',',$array["ItemId"]); 
    //print_r($myarray[$k]); 
    $update_fields=array('sku','price'); 


    if($price=='') 
    { 
    // $Col_array=array('sku'=>"".$myarray[$k][$k]."",'price'=>"-1"); 


    /*Here is the solution we have to index it inside the loop like a 2D 
     array now it contain an array inside which array of key value pair is 
     present (associative array) which i wanted */ 


    //********** 
     $Col_array[$k]['sku']=$myarray[$k][$k]; 
     $Col_array[$k]['price']="-1"; 
    //********* 
    } 
    else 
    { 
    $price_trimed=ltrim($price,'$'); 
    // final array to be stored in database 
    // $Col_array=array('sku'=>"".$myarray[$k] 
[$k]."",'price'=>$price_trimed); 
    $Col_array[$k]['sku']=$myarray[$k][$k]; 
    $Col_array[$k]['price']=$price_trimed; 

    } 


} 

     return $Col_array; 
    } 



    //******* 
    //To Print the returned array use 


     foreach ($Col_array as $value) { 
    print_r($value); 
     } 

    //********* 
0

いくつかの擬似コードを助けてください。

+0

いいえ、同じキーで毎回値が置き換えられるので、すべての値を与えない –

0

実際には、ここで間違っているのは、ループ内を通過するデータを格納していないことです。希望の結果を得るには、$Col_arrayをメインアレイにプッシュする必要があります。ここにコードがあります

function xml_parsing($response,$size,$array) 
{ 
    //create an empty array before entering the for loop. 
    $main_array = array(); 

    for($k=0;$k<$size;$k++) 
    { 
     $price=(string)$response->Items->Item[$k]->ItemAttributes->ListPrice->FormattedPrice; 
     $myarray[$k]=explode(',',$array["ItemId"]); 
     $update_fields=array('sku','price'); 
     if($price=='') 
     { 
      $Col_array=array('sku'=>"".$myarray[$k][$k]."",'price'=>"-1"); 
     } 
     else 
     { 
      $price_trimed=ltrim($price,'$'); 
      $Col_array=array('sku'=>"".$myarray[$k][$k]."",'price'=>$price_trimed); 
      // I store the values here using a loop 
     } 

     //Here you push the $col_array to main_array 
     array_push($main_array,$Col_array); 
     //This will store whole bunch of data as multi dimensional array which you can use it anywhere. 
    } 
    print_r($main_array); 
    return $main_array;        
} 

私はあなたが望むものを得ると思います。

関連する問題