【问题标题】:Multidimensional Array Implode [duplicate]多维数组内爆
【发布时间】:2026-02-09 23:40:01
【问题描述】:

这是我正在处理的多维数组的示例格式:

 Array ( 
    [1] => Array ( [code] => PPJ3 [street] => 34412 Fake Street [city] => Detroit [state] => MI [zip] => 48223 [county] => Wayne [cost] => 432.00 ) 

    [2] => Array ( [code] => PLK3 [street] => 73517 Fake Street [city] => Detroit [state] => MI [zip] => 48223 [county] => Wayne [cost] => 54.00 ) 

    [3] => Array ( [code] => HYK2 [street] => 55224 Fake Street [city] => Detroit [state] => MI [zip] => 48208 [county] => Wayne [cost] => 345.00 ) 
 )

我正在尝试将隐藏字段设置为仅代码值并用逗号分隔。数组也需要循环,因为它总是会改变。 这就是我想要的样子:

$myHiddenField = PPJ3, PLK3, HYK2

有什么简单的编码方式?

【问题讨论】:

    标签: php multidimensional-array implode


    【解决方案1】:

    只要能引用原数组..

    <?PHP
    $myHiddenField = array();
    foreach($array as $row) {
        $myHiddenField [] = $row['code'];
    }
    ?>
    

    或用于 csv

    <?PHP
    foreach($array as $row) {
        $myHiddenField .= ",".$row['code'];
    }
    $myHiddenField = substr($myHiddenField,1);
    ?>
    

    【讨论】:

      【解决方案2】:

      会有array_column函数是PHP 5.5,你就可以做到这一点

      $myHiddenField = implode(',', array_column($yourMainArray, 'code'));
      

      现在你必须使用自己的循环

      $values = array();
      foreach ($yourMainArray as $address)
      {
        $values[] = $address['code'];
      }
      $myHiddenField = implode(',', $values);
      

      【讨论】:

        【解决方案3】:

        那么使用循环有什么问题呢?

        $myHiddenField = '';
        $c = count($array);
        
        for($i=0;$i<$c;$i++){
          if($i == $c -1){
             $myHiddenField .= $val['code'];
          }else{
             $myHiddenField .= $val['code'].', ';
          }
        }
        

        如果您使用的是 PHP 5.3+:

        $tmp = array_map(function($v){return($v['code']);}, $array);
        $myHiddenField = implode(', ', $tmp);
        

        【讨论】: