0

I would like to transform this array in String with implode :

Array ( [0] => Array ( [technologies_id] => 1 [nom] => PHP [type_technologies_id] => 1 [nom_techno] => Developpement web ) [1] => Array ( [technologies_id] => 3 [nom] => ASP3 [type_technologies_id] => 1 [nom_techno] => Developpement web ) [2] => Array ( [technologies_id] => 5 [nom] => JavaScript [type_technologies_id] => 1 [nom_techno] => Developpement web ) [3] => Array ( [technologies_id] => 6 [nom] => CSS [type_technologies_id] => 1 [nom_techno] => Developpement web ) [4] => Array ( [technologies_id] => 7 [nom] => AJAX [type_technologies_id] => 1 [nom_techno] => Developpement web ) [5] => Array ( [technologies_id] => 17 [nom] => HTML [type_technologies_id] => 1 [nom_techno] => Developpement web ) ) Array ( [0] => Array ( [technologies_id] => 8 [nom] => Jquery [type_technologies_id] => 2 [nom_techno] => Frameworks web ) ) Array ( [0] => Array ( [technologies_id] => 22 [nom] => VB 6 [type_technologies_id] => 3 [nom_techno] => Developpement applicatif ) [1] => Array ( [technologies_id] => 23 [nom] => VB.NET [type_technologies_id] => 3 [nom_techno] => Developpement applicatif ) ) Array ( ) Array ( ) Array ( [0] => Array ( [technologies_id] => 28 [nom] => MySQL [type_technologies_id] => 6 [nom_techno] => SGDB(R) ) [1] => Array ( [technologies_id] => 30 [nom] => SQL Server Express [type_technologies_id] => 6 [nom_techno] => SGDB(R) ) [2] => Array ( [technologies_id] => 32 [nom] => SQLite [type_technologies_id] => 6 [nom_techno] => SGDB(R) ) [3] => Array ( [technologies_id] => 34 [nom] => Microsoft Access [type_technologies_id] => 6 [nom_techno] => SGDB(R) ) ) Array ( [0] => Array ( [technologies_id] => 39 [nom] => SQL [type_technologies_id] => 7 [nom_techno] => Langages d'interrogation de bases de donnees ) ) Array ( [0] => Array ( [technologies_id] => 46 [nom] => Windows [type_technologies_id] => 9 [nom_techno] => OS ) [1] => Array ( [technologies_id] => 49 [nom] => MAC OS [type_technologies_id] => 9 [nom_techno] => OS ) ) Array ( [0] => Array ( [technologies_id] => 54 [nom] => Merise [type_technologies_id] => 11 [nom_techno] => Methodologies ) ) 

I tried like this :

$string_comp = implode($competences);

but I obtained this :

ArrayArrayArrayArrayArrayArray

Thanks in advance for your help

1
  • You have a multidimensional array, an array of arrays. Implode only works on 1 level of an array. Commented Nov 1, 2013 at 10:26

6 Answers 6

4

Try this custom function :)

function multi_implode($sep, $array)
{
    $_array = array();

    foreach($array as $val)
    {
        if(is_array($val)) $_array[] = multi_implode($sep, $val);
        else $_array[] = $val;
    }

    return implode($sep, $_array);
}

Your implode not working because you are have a multi-array.

Sign up to request clarification or add additional context in comments.

2 Comments

When I call this function, what separator have I to send ? thank you
@beegees, what ever you want :) Put ' ' (space) for example or ',' (comma). $sep is this separator of the arrays.
0

Try like this->

$array = array(1,2,3,4);
echo serialize($array);

// Prints

a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;s:3:4;}

Comments

0

Just use this:

$res = '';
foreach ($arr as $item) {
    $res .= implode('', $item);
}

1 Comment

Or in an one line: $str = implode(array_map('implode', $array))
0

To get output in a string formate use serialize() function of php you can unserialize() also as its previous state.

Comments

0

Depends on how you want to access it but personally, I'd just convert it to JSON with json_encode($myvar);. Or have a look at this answer provided on Stackoverflow: Multidimensional Array PHP Implode.

Comments

0

You have an array of arrays. You must implode each subarray, like this:

foreach ($competences as $subArray)
{
    $string_comp .= implode($subArray);
}

1 Comment

@beegees I'm sorry, I forgot foreach syntax. I've made proper corrections.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.