2011-12-20 5 views
1

CakePHPのSetクラスを使用して、検索された配列をフォーマットしましたが、ゼロから開始するカウンタと配列キーの自動インクリメントを取得する方法が見つからないようですそれは、私は現在、私のhasAndBelongsToManyのテーブルからデータを取得するために、クエリの下に使用していCakephpがSetクラスを使用してキーがゼロから始まるデータをフェッチする

[0] => 3 
[1] => 6 
[2] => 12 

のようなものです。

$interest_ids = Set::combine($this->User->Interestsub->find('threaded', array 
       (
        'conditions' => array 
        (
         'Interestsub.name' => $interests 
        ), 
        //'fields' => array('Interestsub.id'), 
        'recursive' => -1 
       ) 
      ), 
      '{n}.Interestsub.id', 
      '{n}.Interestsub.id' 
      ); 

私はこれが必要な理由は、私は現在SAVEALL機能のために保存する準備をして、より大きな親配列の一部として返された配列を取得しようとしているということです。適切にフォーマットされるためには、私が出てくるネストされた配列を下回る必要があります。

[0] => Array 
(
    [interestssub_id] => 12 
    [user_id] => 2 
) 
[1] => Array 
(
    [interestssub_id] => 22 
    [user_id] => 2 
) 
[2] => Array 
(
    [interestssub_id] => 32 
    [user_id] => 2 
) 

は、我々は上記のように返された配列をフォーマットするクラスを組み合わせて使用​​することができる方法はありますか?

+0

を、あなたは' $ new_array = array_values($ old_array)を使用することができます。 – Costa

答えて

0

この場合、Setクラスを使用する本当の理由はありません。ちょうど良い昔ながらのPHPを使用します; `0から始まるインデックスを再作成するために変更が必要な出力の唯一の側面は、配列のインデックスである場合

$threaded = $this->User->Interestsub->find('threaded', array(
    'conditions' => array(
    'Interestsub.name' => $interests 
), 
    'recursive' => -1 
)); 

$interest_ids = array(); 
foreach ($threaded as $thread) { 
    $interest_ids[] = array(
    'interestssub_id' => $thread['Interestsub.id'], 
    'interestssub_id' => $thread['Interestsub.user_id'] 
); 
} 
関連する問題