【发布时间】:2014-01-10 23:01:57
【问题描述】:
今天下午我一直在寻找可行的解决方案来解决我的用例。没找到。
用例: 将数组转换为这样的格式,在 PDO 插入语句中,数组键是列,数组值是 SQL 值。如果此请求与其他请求重复,我深表歉意。我还没有找到适合我的。在我的示例中,父数组是Array[0],它被插入到一个表中,Array[1] 是孩子。它们被迭代并插入到另一个以fk_user_id 作为外键的表中。
示例插入:
$sth = $dbh->prepare("INSERT INTO $table ($colData) VALUES ($valData)");
因此,列将是 (key1, key2),VALUES 将是 (:value1, :value2),依此类推。我在多维和提取子节点等方面遇到了各种问题。
样本数组:
[INFO] Array
(
[0] => Array
(
[last_visit] => 1389393273.19
[first_visit] => 1389313338.69
[this_visit] => 1389393265.75
[latitude] => 37.7858352661
[longitude] => -122.406417847
[opted_out] => 0
[opted_in] => 0
[user_id] => 1
[locale] => en
[device_maker] => unknown
[device_model] => Simulator
[os_platform] => iPhone OS
[os_version] => 7.0.3
[modified] => 1389393273.19
[model_type] => tracker
)
[1] => Array
(
[0] => Array
(
[view_count] => 1
[visit_timestamp] => 1389393265.63
[page_viewed] => home
[page_id] => 320
[fk_user_id] => 1
[model_type] => page
)
[1] => Array
(
[view_count] => 2
[visit_timestamp] => 1389393265.64
[page_viewed] => contactView
[page_id] => 321
[fk_user_id] => 1
[model_type] => page
)
)
)
我尝试过的解决方案 Remove parent - keep children, Remove key from associative array, Iterating over an array, Flatten array 和其他人。我可能对代码太深了,以至于我失去了对数据的看法。我已经有一段时间没有这么多地使用 PHP 了,所以我的技能需要提高。非常感谢您的帮助。
【问题讨论】:
-
是否有最多二维或无限数量的孩子?
-
你考虑过json_encode吗?它不像它可能的那样紧凑,但可以满足您的目的。