PHP: How to put a variable in an array?

2019-07-20 01:37发布

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.

2条回答
不美不萌又怎样
2楼-- · 2019-07-20 02:00

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

查看更多
Lonely孤独者°
3楼-- · 2019-07-20 02:02
$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);
查看更多
登录 后发表回答