0

私は初心者です、誰かが私を助けることができますか?

私は配列を持っています

array(2) {
 ["Peter"]=>
  object(stdClass)#504 (2) {
    ["id"]=>
    string(4) "2226"
    ["name"]=>
     string(4) "Peter"
   }
 ["Sam"]=>
  object(stdClass)#505 (2) {
    ["id"]=>
    string(4) "2227"
    ["name"]=>
    string(14) "Sam"
   }
}

列「id」から要素を取得し、ループのためにSQLに入れたい

$idcol = array()
foreach($info as $item){
$idcol[] = $item['id'];
}

しかし、id列を取得できない理由がわかりません。

ループの場合、$idcol の配列要素を sql に入れる方法は? get_sql は関数です

 for($i=0;$i<count($idcol);$i++){
 $rate = get_sql($idcol);
 }
4

6 に答える 6

2

配列から値にアクセスできない理由は、詳細がオブジェクトとして保存されているため、値にアクセスするには矢印演算子「->」を使用する必要があるためです。したがって、以下のコードを試すことができます。

$idcol = array()
foreach($info as $person_details)
{
    $id = $person_details->id;
    $person_name = $person_details->name;
    $idcol[] = $id;
}
于 2013-10-04T04:41:56.793 に答える
0

array_mapID を取得するために使用することもできます。

$idcol = array_map(function($item){return $item->id;},$info);

次に、foreachループを使用して値を関数に送信できます (ただし、複数のクエリを避けるために、関数を配列で動作させることが最善です)。

foreach($idcol as $id){
    $rate = get_sql($id);
}

現在のループが機能しない理由は、配列全体を送信していて、次のようなインデックスを使用していないためです$idcol[i]

于 2013-10-04T04:51:32.533 に答える
0

それが最初に述べた配列であると仮定すると$info、それぞれ$itemはオブジェクトであり、配列ではありません。したがって、次を試してください:

foreach($info as $item){
    $idcol[] = $item->id;
}
于 2013-10-04T04:41:36.327 に答える