次のPHP配列を解析しようとしていますが、何とか結果が得られていますが、期待される出力が得られませんでした。次のPHP配列を解析する方法
アレイ:
Array (
[0] => Array (
[countNos] => 2
[question_id] => 1
[question] => Is Service Best?
[rating] => 4
)
[1] => Array (
[countNos] => 1
[question_id] => 2
[question] => How much you benifitted?
[rating] => 5
)
[2] => Array (
[countNos] => 1
[question_id] => 2
[question] => How much you benifitted?
[rating] => 2
)
)
現在のコード:
お知らせ:未定義のインデックス:Cの星:\ XAMPP \ htdocsにし
foreach ($ratings as $rating) { if (!in_array($rating['question_id'], $ratingArr)) { $ratingArr[$rating['question_id']]['question_id'] = $rating['question_id']; $ratingArr[$rating['question_id']]['question'] = $rating['question']; } for ($i = 5; $i >= 1; $i--) { if (!in_array($rating['rating'], $ratingArr[$rating['question_id']]['stars'])) { if ($i == $rating['rating']) { $ratingArr[$rating['question_id']]['stars'][$i] = $rating['countNos']; } } } }
これは私が取得しています出力されます\ mibs \ module \ Survey \ src \ Survey \ Service \ SurveyService.php on line 153
警告:ライン153
Array (
[1] => Array (
[question_id] => 1
[question] => Is Service Best?
[stars] => Array (
[4] => 2
)
)
[2] => Array (
[question_id] => 2
[question] => How much you benifitted?
[stars] => Array (
[5] => 1
[2] => 1
)
)
)
の\ XAMPP \ htdocsに\のMIB \モジュール\調査\ SRC \調査\サービス\ SurveyService.php:in_array()は、パラメータ2がヌルCで指定された配列であることを期待しますしかし、私は次の出力を期待しています:
Array(
[1] => Array(
[question_id] => 1
[question] => Is Service Best?
[stars] => Array(
[5] => 0
[4] => 2
[3] => 0
[2] => 0
[1] => 0
)
)
[2] => Array(
[question_id] => 2
[question] => How much you benifitted?
[stars] => Array(
[5] => 1
[4] => 0
[3] => 0
[2] => 1
[1] => 0
)
)
)
をどのように私は私が解析していたときに、この配列が、私はいつも、私はこれを克服することができますどのように、この種の問題を抱えてい解析することができます。
はちょうどあなたのコードを見て、あなたがループのためにそれを使用する理由尋ねた;)また 'in_array($評価[ 'question_id']、$ ratingArr)'質問IDかどうかを確認ん!の'$ ratingArr'に** value **として存在しますが、これをキーとして使用するので、おそらく' isset() 'または単に' array_key_exsits() 'に変更したいと思うでしょう。 'stars'サブアレイのキーの順序がOPに関係する場合、配列を反転するか、' array_fill_keys() 'を使用することができます。 – Rizier123
もちろん、実際には' array_key_exists'だったのです。 – Barmar
私は今注文が重要ではないと仮定するつもりです。 – Barmar