Php 每个查询的原则-什么是错误的?

Php 每个查询的原则-什么是错误的?,php,symfony1,doctrine,symfony-1.4,doctrine-1.2,Php,Symfony1,Doctrine,Symfony 1.4,Doctrine 1.2,我有一个名为$zip\u的数组 Array ([0] => Array([zip] => 12345, [distance] => 12345)). 如果我要打印$value[zip],它是正确的。但是我得到了一个空数组。当我不使用foreach循环并手动执行查询时,它就工作了。我做错了什么 $shop = array(); foreach ($zip_in_distance as $key => $value) { $q = Doctrine

我有一个名为
$zip\u的数组

Array ([0] => Array([zip] => 12345, [distance] => 12345)).
如果我要打印
$value[zip]
,它是正确的。但是我得到了一个空数组。当我不使用foreach循环并手动执行查询时,它就工作了。我做错了什么

    $shop = array();
    foreach ($zip_in_distance as $key => $value) {

    $q = Doctrine_Query::create()
                ->from('market m')
                ->where('m.zip = ? ', $value['zip'])
                ->execute();

    $shop[] = $q;
    }
    return $shop;
我的模板:

foreach ($shops as $key => $list) {
   echo  $key . $list['id'] . '<br>'; 
}
foreach($key=>$list){
echo$key.$list['id']。
; }
我的每个zipcode都有比市面上更多的。提前谢谢

垃圾猎人

为什么要使用foreach? 试着这样做:

return MarketTable::getInstance()
  ->whereIn('m.zip', array_map(
    function($element) {return $element['zip'];},
    $shop
  ))
  ->execute();