【发布时间】:2015-03-27 00:34:19
【问题描述】:
我有一些关于这个的问题,但我从来没有得到一个好的和word。
我有一些响应良好的功能,但问题是打印 x2 我的查询。
我尝试最小化我的脚本以快速获得帮助。
关于array_merge。
首先
- 验证函数
function Verify($params) {
$query = mysql_query("SELECT SOMETHING");
if ($query->num_rows > 0) {
$row = $query->fetch_assoc();
// Here will pass 2 array on each function to proceed
$data = self::CacheData($row['gid'], $params['sid']);
$data['data'] = self::Host($row['gid'], $params['sid']);
return $tmpdata;
}
return false;
}
- 创建 ChacheData 和主机函数。
static function CacheData($gid, $sid){
$cachedata = array();
$querycache = mysql_query("SELECT WHAT I NEED");
if ($querycache->num_rows == 1) {
$rowcache = $querycache->fetch_assoc();
// Send to Files the array and check if is true
if (self::Files(array('gid' => $gid, 'sid' => $sid, 'expirecache' => 0)) == true) {
return array('gid' => $gid, 'size' => 0, 'enabled' => $rowcache['enabled'], 'exists' => false);
}
}
}
function Host($gid, $sid) {
$query = mysq_query("SELECT WHAT I NEED");
if ($query->num_rows == 0) {
return false;
}
$rowgame = $query->fetch_assoc();
// Send to Files the array and to see if is / false
if (self::Files(array('gid' => $gid, 'sid' => $sid)) == false) {
return false;
}
}
好的,这是我遇到的问题
当文件接收到 2 个数组时,它可以正常工作,但我希望其他函数将所有数组发送到 array_merge all。
所以问题出在哪里的最后一个函数是这样的
function Files(array $params) {
$default = array('skipcache' => false, 'expirecache' => 86400, 'os' => null);
$params = array_merge($default, $params);
//return $params;
print_r($params);
}
现在输出会是这样的
array(5) {
["skipcache"]=>
bool(false)
["expirecache"]=>
string(1) "0"
["os"]=>
NULL
["gid"]=>
string(1) "1"
["sid"]=>
string(1) "1"
}
array(5) {
["skipcache"]=>
bool(false)
["expirecache"]=>
int(86400)
["os"]=>
NULL
["gid"]=>
string(1) "2"
["sid"]=>
string(1) "1"
}
基于我在数据库上添加的这个输出,但问题是在数据库上添加 2,我需要 1 个数组而不是 2。
所以我看到 array_merge 删除了重复项,但在这里我看到所有内容都相同但不是删除,因为 $params 接收 2 个数组!
你能给我一些解决方案,但不是 Foreach !
非常感谢!
问候,
【问题讨论】:
-
但是你的最终数组的值是不同的。你也可以发布你的预期输出吗?
标签: php arrays multidimensional-array array-merge