یونیک کردن مقدار ها بر اساس اسم در ارایه ای که عناصر آن آبجکت هستند
سلام من یه آرایه دارم که عناصر اون آبجکت هست مثل این
array (size=99)
0 =>
object(WP_Term)[12786]
public 'term_id' => int 189
public 'name' => string '1500' (length=4)
public 'slug' => string '1500' (length=4)
public 'term_group' => int 0
public 'term_taxonomy_id' => int 189
public 'taxonomy' => string 'product_cat' (length=11)
public 'description' => string '' (length=0)
public 'parent' => int 151
public 'count' => int 1
public 'filter' => string 'raw' (length=3)
public 'meta_value' => null
public 'cat_ID' => int 189
public 'category_count' => int 1
public 'category_description' => string '' (length=0)
public 'cat_name' => string '1500' (length=4)
public 'category_nicename' => string '1500' (length=4)
public 'category_parent' => int 151
1 =>
object(WP_Term)[12785]
public 'term_id' => int 190
public 'name' => string '1500' (length=4)
public 'slug' => string '1500' (length=4)
public 'term_group' => int 0
public 'term_taxonomy_id' => int 190
public 'taxonomy' => string 'product_cat' (length=11)
public 'description' => string '' (length=0)
public 'parent' => int 151
public 'count' => int 1
public 'filter' => string 'raw' (length=3)
public 'meta_value' => null
public 'cat_ID' => int 190
public 'category_count' => int 1
public 'category_description' => string '' (length=0)
public 'cat_name' => string '1500' (length=4)
public 'category_nicename' => string '1500' (length=4)
public 'category_parent' => int 151
می خوام بر اساس اسم یونیک بشن این تایع رو می ذارم صفحه ارور میشه : array_unique() و با این دو تابع هم می خوام عناصرش رو به آرایه تبدیل کنم بعد یونیک کنم ولی هر کدوم رو می ذارم هیچ فرقی نمی کنه و ساختار آرایه تغییر نمی کنه
$array = objectToArray($termssize);
$gedrfedrfe = (array)$termssize;
ممنون میشم راهنمایی کنید
نقل قول: یونیک کردن مقدار ها بر اساس اسم در ارایه ای که عناصر آن آبجکت هستند
توی یه حلقه foreach بزار و آرایه رو و آبجکت هاش رو بریز توی یک آرایه دوم .. منتها کلیدهای آرایه دوم رو اون فیلد یونیک آبجکت بزار که مقادیر تکراری رونویس بشن
نقل قول: یونیک کردن مقدار ها بر اساس اسم در ارایه ای که عناصر آن آبجکت هستند
نقل قول:
نوشته شده توسط
plague
توی یه حلقه foreach بزار و آرایه رو و آبجکت هاش رو بریز توی یک آرایه دوم .. منتها کلیدهای آرایه دوم رو اون فیلد یونیک آبجکت بزار که مقادیر تکراری رونویس بشن
سلام خیلی ممنون که جواب دادید
این الان کدی هست که آرایه اول رو تولید می کنه
$termssize = get_categories(array(
'taxonomy' => 'product_cat',
'hide_empty' => false
));
و با این کد می خوام یونیکش کنم
foreach ($termssize as $value){
$array[][$value->term_id] = $value->name;
$childrenuniq = array_unique($array);
$childrenuniq = (object)$childrenuniq;
}
var_dump($childrenuniq);
ولی وقتی اینو وردامپ می کنم فقط یک خروجی میده همه ی خروجی رو به صورت یونیک شده نمی ده نمی دونم مشکل کجاست
نقل قول: یونیک کردن مقدار ها بر اساس اسم در ارایه ای که عناصر آن آبجکت هستند
نقل قول:
نوشته شده توسط
plague
توی یه حلقه foreach بزار و آرایه رو و آبجکت هاش رو بریز توی یک آرایه دوم .. منتها کلیدهای آرایه دوم رو اون فیلد یونیک آبجکت بزار که مقادیر تکراری رونویس بشن
من این روش رو درست متوجه نشدم چی کار باید بکنم ولی با این کد stdclass رو به ارایه تبدیل کردم
$array = json_decode(json_encode($termssize), true);
به این صورت شد
array (size=99)
0 =>
array (size=17)
'term_id' => int 189
'name' => string '1500' (length=4)
'slug' => string '1500' (length=4)
'term_group' => int 0
'term_taxonomy_id' => int 189
'taxonomy' => string 'product_cat' (length=11)
'description' => string '' (length=0)
'parent' => int 151
'count' => int 1
'filter' => string 'raw' (length=3)
'meta_value' => null
'cat_ID' => int 189
'category_count' => int 1
'category_description' => string '' (length=0)
'cat_name' => string '1500' (length=4)
'category_nicename' => string '1500' (length=4)
'category_parent' => int 151
1 =>
array (size=17)
'term_id' => int 190
'name' => string '1500' (length=4)
'slug' => string '1500' (length=4)
'term_group' => int 0
'term_taxonomy_id' => int 190
'taxonomy' => string 'product_cat' (length=11)
'description' => string '' (length=0)
'parent' => int 151
'count' => int 1
'filter' => string 'raw' (length=3)
'meta_value' => null
'cat_ID' => int 190
'category_count' => int 1
'category_description' => string '' (length=0)
'cat_name' => string '1500' (length=4)
'category_nicename' => string '1500' (length=4)
'category_parent' => int 151
2 =>
اما وقتی این دستور رو می ذارم
$childrenuniq = array_unique($array);
فقط یه خروجی نشون میده و نتیجه اینجوری میشه
array (size=1)
0 =>
array (size=17)
'term_id' => int 189
'name' => string '1500' (length=4)
'slug' => string '1500' (length=4)
'term_group' => int 0
'term_taxonomy_id' => int 189
'taxonomy' => string 'product_cat' (length=11)
'description' => string '' (length=0)
'parent' => int 151
'count' => int 1
'filter' => string 'raw' (length=3)
'meta_value' => null
'cat_ID' => int 189
'category_count' => int 1
'category_description' => string '' (length=0)
'cat_name' => string '1500' (length=4)
'category_nicename' => string '1500' (length=4)
'category_parent' => int 151
فقط همین یه دونه خروجی رو نشون میده چرا اینجوری میشه دوستان لطفا راهنمایی کنید نمی دونم چجوری درستش کنم
نقل قول: یونیک کردن مقدار ها بر اساس اسم در ارایه ای که عناصر آن آبجکت هستند
اینجوری بنویس
$array_of_objects = [ object , object ] ;
$unique_array = [] ;
foreach($array_of_objects as $object )
$unique_array[$object->unique_property] = $object ;