首页 > 解决方案 > array_walk 中的匿名函数在 PHP 5.2 上抛出错误

问题描述

下面是在 php 5.2 上抛出错误的 array_walk 函数。我在舞台上有 5.2 版本,在本地和开发上有 5.3 版本。代码在本地和开发 php 版本上运行良好。

foreach($favTracks as $track_id) {
array_walk($tracks, function ($t, $k) use ($track_id, &$return) {    
    if($t['track_code'] == $track_id) {
        $trackDetails = variable_get('drf_admin_top_track_'. $k . '_news_list', array());
        $return[$track_id]  = array('articles' => 
        get_fav_details($trackDetails), 
        'trackName' => isset($t['title']) ? $t['title'] : "" );
    }        
});    
}

标签: phpphp-5.3php-5.2

解决方案


我通过执行以下代码解决了这个问题。

function getTopTrackWalk($t, $k, $trackArr) {    
  if($t['track_code'] == $trackArr[0]) {
  $trackDetails = variable_get('drf_admin_top_track_'. $k . '_news_list', array());
  $trackArr[1][$trackArr[0]]  = array('articles' => 
  get_fav_details($trackDetails), 
'trackName' => isset($t['title']) ? $t['title'] : "" );
}           
}
array_walk($tracks, "getTopTrackWalk", array($track_id, &$return));  

推荐阅读