Skip to content
Advertisement

Push values one-at-a-time from a flat array into each object of an array of arrays containing objects

I need to push a new property into my array of arrays of objects using the values from a flat array.

My sample arrays:

JavaScript

I need to write is_admin => [boolean value] (one at a time) into each object using the values from the second array.

Desired result:

JavaScript

I do not know how to map the second array with the first array’s structure. I have tried using array_merge, but it doesn’t work properly with my data structure and requirements.

Advertisement

Answer

You can use array_walk_recursive function:

JavaScript

Pay attention that both $user and $is_admin passed by reference.

Also, you can use outer index variable (i.e. $i) to track $is_admin position. In such case, you need to pass (to be more precise enclose) $i along side with $is_admin, only $i will be passed by reference and $is_admin by value. I decided to take advantage of current and next functions, not introducing one more variable.

Here is working demo.

One important thing. If your $is_admin array has fewer elements than $users arrays (they are leaves actually) false value will be assigned to the is_admin field of those users that comes after the point when there are no elements left in $is_admin.

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement