2016-09-08 4 views
1

私は悲しいことに自分のコードに問題があります。だから私はこのようになります$データ変数に保存された約100のキーを持つ配列を持っている:配列から別の変数に30キーを保存する

["data"]=> 
    array(413) { 
    [0]=> 
    object(stdClass)#254 (7) { 
     ["Date"]=> 
     string(10) "2016-09-08" 
     ["Open"]=> 
     string(6) "771.00" 
     ["Close"]=> 
     string(6) "782.00" 
    } 
    [1]=> 
    object(stdClass)#254 (7) { 
     ["Date"]=> 
     string(10) "2016-09-07" 
     ["Open"]=> 
     string(6) "71.00" 
     ["Close"]=> 
     string(6) "82.00" 
    } 
    [2]=> 
    object(stdClass)#254 (7) { 
     ["Date"]=> 
     string(10) "2016-09-06" 
     ["Open"]=> 
     string(6) "571.00" 
     ["Close"]=> 
     string(6) "682.00" 
    } 
    [3]=> 
    object(stdClass)#254 (7) { 
     ["Date"]=> 
     string(10) "2016-09-05" 
     ["Open"]=> 
     string(6) "781.00" 
     ["Close"]=> 
     string(6) "702.00" 
    } 
    } 

私は最初の30個の["Close"]キーを保存しようとするが、私は最初のキーに30日からそれらを保存する必要がありますしたがって、私のforループは:

<?php 

    $lowValue = []; 
    for($i = 29; $i >= 0; $i--){ 
     foreach ($data->data[$i] as $obj) { 
      if (isset($obj->Close)) { 
      return $lowValue[] = $obj->Close; 
      } 
     } 
    } 

?> 
data: {!! json_encode(lowValue) !!} 

結果私はハイチャートのデータとして使用するので、json_encodeで保存する必要があります。しかし、私は空の変数、任意のアイデアをなぜですか?そして、私はインターネット上で調べたが、答えが得られない別の質問ですが、json_encodeを関数にも使えますか?私が関数を作りたいのであれば、それをパラメータとして使うことができますか?あなたのお時間をありがとう、何か助けが歓迎されています! データ:

    <?php 
        $lowValue = []; 
        foreach ($data->data as $obj) { 
         if (isset($obj->Close)) { 
          // add the element to the beginning of the array 
          array_unshift($lowValue, $obj->Close); 
         } 

         if(count($lowValue) >= 30) { 
          break; 
         } 
        } 
        echo json_encode($lowValue); 
     ?> 

答えて

1

この試してください:あなたはSOの別の質問を作成する必要があり、あなたの2番目の質問については

$lowValue = []; 
foreach ($data->data[$i] as $obj) { 
    if (isset($obj->Close)) { 
     // add the element to the beginning of the array 
     array_unshift($lowValue, $obj->Close); 
    } 

    if(count($lowValue) >= 30) { 
     break; 
    } 
} 

echo json_encode(['data' => $lowValue]); 

を、私は、コードを変更した後 。

data:<?php 
     $lowValue = []; 
     foreach ($data->data as $obj) { 
      if (isset($obj->Close)) { 
       // add the element to the beginning of the array 
       array_unshift($lowValue, $obj->Close); 
      } 

      if(count($lowValue) >= 30) { 
        break; 
      } 
     } 
     $low = array_map(create_function('$value', 'return (int)$value;'), 
            $lowValue); 
     echo json_encode($low); 
       ?> 

このように私の配列を表示する:@mapekの助けを借りて、私は私の場合は解決策だった彼の例に少し働いてきた後

+0

後私はそれについて少し働いた、私は結果を得たが、私はまだ問題に遭遇する。 highcartsでは、結果は次のようになります。data:[22、335、11、7547]代わりに、配列の数値はdata:["22"、 "335"]の形式です。私はそれらをもう文字列にしなくてはなりません。私は自分のコードをどのように見えるかで質問を編集します。 – Alphonse

+0

お時間をいただきありがとうございました – Alphonse

関連する問題