문제

I've this array:

$request = array(
    'method' => 'Document.create',
    'params' => Array (

        'document' => Array ( SOME DATA

            ),

        'thirdaddress' => Array ( SOME DATA

            ),
        'row' => Array (

            '1' => Array ( SOME DATA
            ),

            '2' => Array ( SOME DATA

            ),

            '4' => Array ( SOME DATA
            ),

        )
    )
);

I want to "inject" this between '2' and '4' keys:

'3' => Array (    SOME DATA

                ),

I figure to inject the with the same structure like that:

$secondArray = array(
        'params'=>Array(
            'row'=> Array(
                '3' => Array (    SOME DATA

                ),
            )   
        )       
    );

I tried this:
1. $request['params']['row']['3']=$secondArray;
2. $request = array_merge($request,$secondArray);
3. $request = array_merge_recursive($request,$secondArray);

ksort don't work too.. My row is stuck as the last place .. i've done a

if(STATEMENT){ //$request = array_merge_recursive($request,$secondArray; //$request['params']['row']['3']=$secondArray['params']['row']['3']; $request['params']['row']['3']=$secondArray; ksort($request); } die(dump($request));

Where am I wrong? Thanks.

도움이 되었습니까?

해결책

For simply inserting it, this should work -

$request['params']['row']['3']  = Array(SOME DATA);
//This sorts the "row" keys - 
ksort($request['params']['row'], SORT_NUMERIC)

다른 팁

Try array_merge_recursive():

<?php
$request = array(
    'method' => 'Document.create',
    'params' => Array (

        'document' => Array ( SOME DATA

            ),

        'thirdaddress' => Array ( SOME DATA

            ),
        'row' => Array (

            '1' => Array ( SOME DATA
            ),

            '2' => Array ( SOME DATA

            ),

            '4' => Array ( SOME DATA
            ),

        )
    )
);

$secondArray = array(
    'params'=>Array(
        'row'=> Array(
            '3' => Array ('foo' => 'bar'),
        )   
    )       
);

$request = array_merge_recursive($request, $secondArray)

With point 1. you are nearly good, you just need this change.
Instead of:

$secondArray = array(
    'params'=>Array(
        'row'=> Array(
            '3' => Array (    SOME DATA

            ),
        )   
    )       
);

Try this:

$secondArray = array(SOME DATA);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top