2012-03-14 5 views
1

私はfolowingています破グルーパラメータ問題

$ids = array_map(function($item) { 
     if($item[1] != '') 
      return '<li><a href="'.$item[1].'">'.$item[0].'</a></li>'; 
     else 
      return '<li><a>'.$item[0].'</a></li>'; 
     }, $trail); 


    echo implode(' > ', $ids); 

これは代わりにダッシュボード> [アカウント]> [アカウントの DashboardAccountsAccount>> を返します。

これはバグですか?どうすれば修正できますか?

答えて

0

アレイ内のすべての要素に対してtrim()を実行し、擬似する前に空の要素を削除します。あなたの配列はこれをテストしたがどのように見えるか

+0

マップにはそれが処理されるため、配列に空の要素はありません。私もvar_dumpを実行して確認しました。 – firebird

+0

@firebird、あなたの腹線の直前に 'print_r($ ids)'の出力を表示し、それを証明してください。 – Brad

0

わからない:

$trail[] = array('Dashboard', 'test.html'); 
$trail[] = array('Accounts', 'test.html'); 
$trail[] = array('Account', 'test.html'); 
$trail[] = array('Something', ''); 

function my_function($item){ 
    if($item[1] != '') 
    return '<li><a href="'.$item[1].'">'.$item[0].'</a></li>'; 
    else 
    return '<li><a>'.$item[0].'</a></li>'; 
} 

$ids = array_map(my_function, $trail); 
echo implode(' > ', $ids); 

戻り

<li><a href="test.html">Dashboard</a></li> > 
<li><a href="test.html">Accounts</a></li> > 
<li><a href="test.html">Account</a></li> > 
<li><a>Something</a></li>