我有一个类似下面的数组的数组,我想将该数组与另外2个数组合并。我已经尝试过使用数组合并功能,但是失败了,您能建议其他方法吗?
(
[0] => stdClass Object
(
[field_name] => mem_goup_name
[table_name] => membership_group
[field_id] => 15
)
[1] => stdClass Object
(
[field_name] => mem_group_description
[table_name] => membership_group
[field_id] => 17
)
)
我想将这2个数组设置为以前的数组
Array
(
[fiter_15] => 5
[fiter_17] => 2
)
Array
(
[operator_15] => 3
[operator_17] => 1
)
意思是这样(数字的键必须等于field_id)。
[0] => stdClass Object
(
[field_name] => mem_goup_name
[table_name] => membership_group
[field_id] => 15,
[fiter_15] => 5,
[operator_15] => 3
)
[1] => stdClass Object
(
[field_name] => mem_group_description
[table_name] => membership_group
[field_id] => 17,
[fiter_17] => 2,
[operator_17] => 1
)
这是我到目前为止尝试过的。
$operator = array();
$filter = array();
$field_ids = array();
foreach ($fitered_values as $key => $value) {
if (strpos($key, 'operator_') !== false) {
$operator[$key] = $value;
}
if (strpos($key, 'fiter_') !== false) {
$filter[$key] = $value;
}
if (strpos($key, 'field_ids_') !== false) {
$field_ids[$key] = $value;
}
}
答案 0 :(得分:2)
您可以循环第一个数组并使用preg_grep查找键。
我grep array2的array_keys和输出相交以获得数组项。
然后将其合并到主array1中。
$arr2 = array_merge($filter, $operator);
foreach($arr1 as $key => $item){
$temp = preg_grep("/.*_" . $item['field_id'] . "/", Array_keys($arr2));
$arr1[$key] = array_merge($arr1[$key] , array_intersect_key($arr2, array_flip($temp)));
}
var_dump($arr1);
为什么还有两个帐户?
filter array by string and separate in to 2 arrays
答案 1 :(得分:0)
请检查以下内容,让我知道它是否适合您。
onSelect() {
this.table_data = document.getElementById("just_a_table");
for (var i=1, row; row = this.table_data.rows[i]; i++){
for (var j=0, cell; cell = row.cells[j]; j++){
if (cell[1].children[0].checked){
console.log("It is checked");
}
}
}
}