Justine Justine - 5 months ago 11
PHP Question

PHP: How to put a variable in an array?

Just a quick newbie PHP syntax question.

I have a variable, let's call it

$tabs
which always contains a string of numbers separated by commas, like so:
24,35,43,21


I also have a variable that's an array:

$args = array('post_type' => 'page', 'post__in' => array(27,19,29), 'order' => 'ASC');


That's of course WordPress. What I need to do, is place the content of the
$tabs
variable (numbers) where the numbers inside the array are. I'm rather new to PHP, only understand how to modify some things, but this I can't figure out, no idea how the syntax for it should go.

Anyone able to help? Thanks.

Answer
$args['post__in'] = array_merge($args['post__in'], explode(',', $tabs));

Let's explain what I did so you may pick up a thing or two:

  1. explode(',', $tabs) splits a string into pieces at a separator and puts that pieces in an array.
  2. array_merge($arr1, $arr2) will merge the two arrays.
  3. $args['post__in'] will access an array element specified by a key.

Note that array_merge, in this case, will just append the values and you may end up with duplicate numbers. To get rid of duplicates just wrap the merge in array_unique. Like so:

$args['post__in'] = array_unique(array_merge($args['post__in'], explode(',', $tabs)));

And of course, the trivial case when you just want to replace those numbers with brand new ones is

$args['post__in'] = explode(`,`, $tabs);
Comments