我不知道为什么,但我有一个代码检查数组,看它是否有值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: –