Here is a sample of the multidimensional array being outputted.
Array
(
[0] => stdClass Object
(
[term_id] => 34
[name] => ACS Consultants
[slug] => acs-consultants
[term_group] => 0
[term_taxonomy_id] => 34
[taxonomy] => ad_cat
[description] =>
[parent] => 0
[count] => 0
[cat_ID] => 34
[category_count] => 0
[category_description] =>
[cat_name] => ACS Consultants
[category_nicename] => acs-consultants
[category_parent] => 0
)
[1] => stdClass Object
(
[term_id] => 18
[name] => Business Development
[slug] => business-development
[term_group] => 0
[term_taxonomy_id] => 18
[taxonomy] => ad_cat
[description] =>
[parent] => 0
[count] => 0
[cat_ID] => 18
[category_count] => 0
[category_description] =>
[cat_name] => Business Development
[category_nicename] => business-development
[category_parent] => 0
)
[2] => stdClass Object
(
[term_id] => 12
[name] => Cash In Transit
[slug] => cash-in-transit
[term_group] => 0
[term_taxonomy_id] => 12
[taxonomy] => ad_cat
[description] =>
[parent] => 0
[count] => 0
[cat_ID] => 12
[category_count] => 0
[category_description] =>
[cat_name] => Cash In Transit
[category_nicename] => cash-in-transit
[category_parent] => 0
)
)
What i'm trying to do is take name
and cat_ID
and put into a new array like this
$newarray['ACS Consultants']=34;
$newarray['Business Development']=18;
$newarray['Cash In Transit']=12;
Here is my attempt but didn't work
$categories = get_categories( $args );
$newarray = array();
foreach($categories as $array) {
foreach($array as $key=>$value) {
if($key=="name") {
$term = $key;
$newarray[$term]="";
}
if($key=="cat_ID") {
$newarray[$term]=$value;
}
}
}
How do i accomplish this?
It just an array of objects, you only need one loop. and you access the objects with ->
foreach ($categories as $category) {
$newArray[$category->name] = $category->cat_ID;
}
No need for a second foreach loop, this should do it
$newArray = array();
foreach($categories as $array)
{
$newArray[$array['name']] = $array['cat_ID'];
}
var_dump($newArray);
outputs
array(3) {
["ACS Consultants"]=>string(2) "34"
["Business Development"]=>string(2) "18"
["Cash In Transit"]=>string(2) "12"
}
Although I did set $categories
to an array of arrays for testing, so you may need to try the following if name
and cat_ID
are properties
$newArray = array();
foreach($categories as $array)
{
$newArray[$array->name] = $array->cat_ID;
}
var_dump($newArray);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.