我不知道爲什麼,但我有一個代碼檢查數組,看它是否有值insde數組已經。這隻能保存一次數組。下面是代碼:使用in_array爲數組中的值與鍵名
$categoryatributesarray = [];
$categoryarray['type_name'] = 'NA';
$categoryarray['type_id'] = 'NA';
$categoryarray['value_name'] = 'NA';
$categoryarray['value_id'] = 'NA';
$categoryarray['shopify_type'] = 'NA';
array_push($categoryatributesarray, $categoryarray);
foreach ($CategoriesMerging as $key => $value) {
if (empty($value['CategoriesMerging']['category_id'])) {
$this->redirect('/product_mercado_libres/categoryMerging');
return false;
}
$categoryatributes = $meli->get('/categories/' . $value['CategoriesMerging']['category_id'] . '/attributes');
if (!empty($categoryatributes['body'])) {
foreach ($categoryatributes['body'] as $key1 => $value1) {
foreach ($value1->values as $key2 => $value2) {
if (!in_array($value2->id, $categoryatributesarray)) {
$categoryarray['type_name'] = $value1->name;
$categoryarray['type_id'] = $value1->id;
$categoryarray['value_name'] = $value2->name;
$categoryarray['value_id'] = $value2->id;
$categoryarray['shopify_type'] = $value['CategoriesMerging']['type'];
array_push($categoryatributesarray, $categoryarray);
}
}
}
}
}
echo '<pre>';
echo print_r($categoryatributesarray);
echo '</pre>';
它給了我和陣列什麼是尋找到是下一個:
Array
(
[0] => Array
(
[type_name] => NA
[type_id] => NA
[value_name] => NA
[value_id] => NA
[shopify_type] => NA
)
[1] => Array
(
[type_name] => Talle
[type_id] => 30000
[value_name] => 0-3 M
[value_id] => 5f95725
[shopify_type] => Conjuntos
)
[2] => Array
(
[type_name] => Talle
[type_id] => 30000
[value_name] => 3-6 M
[value_id] => ccbd9f4
[shopify_type] => Conjuntos
)
.....
)
什麼進出口尋找對於value_id不要在同一陣列中來了2倍我打印。
如果您希望'$ categoryatributesarray'數組在'value_id'上是唯一的,那麼在構建'$ categoryatributesarray'時可以使用'value_id'作爲數組鍵。 –
這是一個很好的解決方法:P現在就用你的想法。但我想知道爲什麼我建立它的方式不起作用。我需要在in_array上更改它才能工作D: –