douhuai4155 2018-08-12 01:57
浏览 52
已采纳

PHP如何在单个字符串中连接多维数组和单个数组

Find below the var_dump:

Array ( [0] => Merk op dat als u verschillende verzekeringsovereenkomsten gaat vergel [1] => ijken, u niet enkel de geraamde kosten en lasten van de overeenkomsten [2] => met elkaar mag vergelijken, maar ook andere elementen in aanmerking m [3] => oet nemen, zoals de reikwijdte van de waarborgen, het bedrag van event [4] => uele franchises of de uitsluitingsclausules. De hierboven opgegeven ) Array ( [0] => ramingen geven een beter zicht op het premiegedeelte dat wordt aangewe [1] => nd voor de dekking van het risico dat door de verzekeringsovereenkomst [2] => wordt gedekt. Het saldo van de premie, na aftrek van de taksen en bij [3] => dragen alsook van de acquisitie- en administratiekosten, bestaat immer [4] => s uit het gedeelte van de premie dat wordt aangewend om de ) Array ( [0] => contractueel vastgelegde prestaties te verrichten en uit de andere kos [1] => ten dan hierboven vermeld (waaronder de samengevoegde en onderling ged [2] => eelde kosten van de schadegevallen en het beheer ervan). Deze ramingen [3] => zijn berekend op grond van de boekhoudkundige gegevens van het laatst [4] => e boekjaar van de verzekeringsonderneming, als goedgekeurd door haar ) algemene vergadering.Array ( [0] => La prime a t adapte en fonction de notre dernier tarif. Vous avez l [1] => e droit de rsilier votre contrat dans les 3 mois qui suivent cette no [2] => tification. La rsiliation se fait par lettre recommande. ) Array ( [0] => Votre attention est attire sur le fait qu'une comparaison entre plusi [1] => eurs contrats d'assurance ne doit pas se limiter comparer l'estimati [2] => on des cots et frais de chaque contrat mais doit galement prendre en [3] => considration d'autres lments, tels que l'tendue des garanties, le [4] => montant des franchises ventuelles ou les clauses d'exclusion. Les ) Array ( [0] => estimations communiques ci-dessus permettent de mieux apprcier la pa [1] => rtie de la prime qui sert couvrir le risque assur par le contrat d' [2] => assurance. Le solde de la prime, aprs dduction des taxes et contribu [3] => tions ainsi que des frais d'acquisition et d'administration, reprsent [4] => e en effet la part de la prime affecte l'excution des prestations ) Array ( [0] => contractuelles ainsi que les frais non mentionns ci-dessus (y inclus [1] => le cot mutualis des sinistres et de leur gestion). Ces estimations s [2] => ont calcules sur la base des donnes comptables du dernier exercice c [3] => omptable de l'entreprise d'assurances telles qu'approuves par son ass [4] => emble gnrale. )

As you can see this example combines single and multidimensional arrays, and I need to put them in a single string separated by blank spaces.

  • 写回答

1条回答 默认 最新

  • dongwu8064 2018-08-12 02:11
    关注

    One word, Recursion

    function mutliImplode($glue, $pieces = ''){
        if(!is_array($pieces) && is_array($glue)){
        //compatibility with native implode where glue and piecess can be swapped
             list($glue, $pieces) = array($pieces, $glue); //swap their values
        }
    
        $flat = [];
        foreach($pieces as $item){
            //if it's a sub-array, call this function again with the sub-array (recursion)
            if(is_array($item)) $item = mutliImplode($glue, $item);
    
            $flat[] = $item;      
        }
    
        //by building a flat array, we can avoid having to remove extra "glue"
        //if we just concatenated $item = $item.$glue. At the end we would 
        //have an extra $glue that we would have to remove...
        return implode($glue, $flat);
    }
    
    $arr = [ 'one', ['two', 'three']];
    echo mutliImplode(' ', $arr);
    

    Output

    one two three
    

    Sandbox

    Also if there is no "glue" you can call it just like native implode (which you can call by substituting "glue" with "pieces", and leaving the second argument out)

    mutliImplode($arr);
    

    Output

    onetwothree
    

    Or you can even swap the arguments, just like native implode. Although its recommend to do $glue then $pieces. I just thought like throwing that in as an extra challenge for myself.

       echo mutliImplode($arr, ' ');
    

    Output

     one two three
    

    Reference http://php.net/manual/en/function.implode.php

    implode — Join array elements with a string

    Note: implode() can, for historical reasons, accept its parameters in either order. For consistency with explode(), however, it may be less confusing to use the documented order of arguments.

    This of course assumes you input a valid array, it also works on non-nested array, albeit a bit slower then the native implementation.

    Cheers!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 问题描述:给定一个算术表达式,通过程序求出最后的结果
    • ¥15 spyder运行重复
    • ¥15 我用C语言easyx图形库绘制了一个3d游戏方框透视,但进入游戏时候鼠标准星对准方框边缘 鼠标光标就会弹出来这是啥情况怎样让光标对准绘制的方框点击鼠标不弹出光标好烦这样
    • ¥20 用Power Query整合的问题
    • ¥20 基于python进行多背包问题的多值编码
    • ¥15 相同型号电脑与配置,发现主板有一台貌似缺少了好多元器件似的,会影响稳定性和使用寿命吗?
    • ¥15 C语言:数据子序列基础版
    • ¥20 powerbulider 导入excel文件,显示不完整
    • ¥15 paddle训练自己的数据loss降不下去
    • ¥20 用matlab的pdetool解决以下三个问题