配列 'c'と 'a'のデータをMyData
の中にマージしようとしていますが、最近、Set :: combineという関数があることがわかりました。 CakePHP 2でcombineメソッドを使うにはどうすればいいですか?私はチュートリアルを検索しましたが、実際に解決策を手伝うことができるまともなものを見つけることはできません。いくつかの例やヒントは素晴らしいでしょう!配列のデータをcakephp2のSet :: combineとマージするには?
[my_test]
と[my_date]
を[MyData]
にセット:: combineでマージしたいと思います。
Array
(
[0] => Array
(
[MyData] => Array
(
[id] => 79
[my_birth_day] => 1990-06-20
[my_address] => 400
[my_age] => 26
[my_name] => Joy
[my_id] => 1
[created] => 2017-06-19 15:39:44
)
[c] => Array
(
[my_test] => math
)
[a] => Array
(
[my_date] => 2017-08-13
)
).....Loops
[1] => Array
(
私は結果は次のようになりたい:
Array
(
[0] => Array
(
[MyData] => Array
(
[id] => 79
[my_birth_day] => 1990-06-20
[my_address] => 400
[my_age] => 26
[my_name] => Joy
[my_id] => 1
[created] => 2017-06-19 15:39:44
[my_test] => math
[my_date] => 2017-08-13
私は配列をマージし、上記のコードのように、それを表示するには、このコードを書いたが、私はセットを使用したい::コンバイン$ res。
$res = $this->find('all', $cond); // All the data are fetchd from this $res
$count = count($res);
for($i=0;$i<$count;$i++){
$result[] = $res[$i] ;
$fixed_arrays[] = $result[$i]['MyData'];
if (!empty($result[$i]['c'])) {
$corrupt_c_array = $result[$i]['c'];
$fixed_arrays = array_merge($fixed_arrays,$corrupt_c_array);
}
if(!empty($result[$i]['a'])) {
$corrupt_a_array = $result[$i]['a'];
$fixed_arrays = array_merge($fixed_arrays, $corrupt_a_array);
}
}
$result['data'] = $fixed_arrays; // This $result['data'] should show the expected result.
これは正解とマークされている理由はわかりません。私は、Set :: combine(またはHash :: CakePHPの新しいバージョンでの組み合わせ)を使って元の質問が何を求めているのかを確かめることはできません。関数内のvaluePath(パラメータ3)として複数の子配列を指定することはできません。また、指定された答えに厳密に従うと、パラメータ1は配列を必要とし、keyPathが配列に解決できず、パラメータ2として '{n} .MyData'がエラーを生成し、 '{n} .a' groupPathも配列に解決できないため、エラーが発生します。 – JadedCore
私は同意した。 @tonyはcakephpバージョン2の答えを尋ねました。私はそれに応じて答えました。ありがとう。 –