我在代码里的得到一个数组如下:
1 2 3 4 5 6 7(键名)
-----------------------------------------------------------------------
a 50 60 long zzz kkk ooo
b 60 70 king lll ttt ppp
c 70 80 quit qqq xxx ccc
------------------------------------------------------------------------
我想取出2,3,4,5,6这五列建立新的数组,并且新的数组用字符串作为键名
如下:
StaffId Wage Name Work Type
-----------------------------------------------------------------
50 60 long zzz kkk
60 70 king lll ttt
70 80 quit qqq xxx
-----------------------------------------------------------------
请问有什么好的方法?初学PHP,对二维数组并不是很懂,请教各位了。
1 2 3 4 5 6 7(键名)
-----------------------------------------------------------------------
a 50 60 long zzz kkk ooo
b 60 70 king lll ttt ppp
c 70 80 quit qqq xxx ccc
------------------------------------------------------------------------
我想取出2,3,4,5,6这五列建立新的数组,并且新的数组用字符串作为键名
如下:
StaffId Wage Name Work Type
-----------------------------------------------------------------
50 60 long zzz kkk
60 70 king lll ttt
70 80 quit qqq xxx
-----------------------------------------------------------------
请问有什么好的方法?初学PHP,对二维数组并不是很懂,请教各位了。
$kname = array('StaffId', 'Wage', 'Name', 'Work', 'Type');
$r = array_combine($kname, array_slice($ar, 1, -1));
print_r($r);Array ( [StaffId] => 50 [Wage] => 60 [Name] => long [Work] => zzz [Type] => kkk )以此类推
array(1 => 'a', 2 => 50, 3 => 60, 4 => 'long', 5 => 'zzz', 6 => 'kkk', 7 => 'ooo'),
array(1 => 'b', 2 => 60, 3 => 70, 4 => 'king', 5 => 'lll', 6 => 'ttt', 7 => 'ppp'),
array(1 => 'c', 2 => 70, 3 => 80, 4 => 'quit', 5 => 'qqq', 6 => 'xxx', 7 => 'ccc'),
);
$kname = array('StaffId', 'Wage', 'Name', 'Work', 'Type');function foo(&$v, $k, $kname) {
$v = array_combine($kname, array_slice($v, 1, -1));
}array_walk($ar, 'foo', $kname);
print_r($ar);Array
(
[0] => Array
(
[StaffId] => 50
[Wage] => 60
[Name] => long
[Work] => zzz
[Type] => kkk
) [1] => Array
(
[StaffId] => 60
[Wage] => 70
[Name] => king
[Work] => lll
[Type] => ttt
) [2] => Array
(
[StaffId] => 70
[Wage] => 80
[Name] => quit
[Work] => qqq
[Type] => xxx
))
怎么能在数据库里使用呢?数据库里没有数组的概念,“我在代码里的得到一个数组”你的这种问法不就产生误解了?
这边我说的Trigger可能和您说的不一样。一般数组在这里创建,传递给Grid显示到页面。(很多时候用的是ProcessMaker自带的东西,所以之前没接触过PHP的我来说,已经将他们混在一起,一团浆糊。)
下面有段是Trigger的代码,感兴趣的可以看看:Displaying a List of Cases in a Grid@=casesGrid = array();
$userId = @@USER_LOGGED;
$q = "SELECT APP_UID, DEL_INDEX FROM APP_DELEGATION WHERE USR_UID='$userId' and DEL_THREAD_STATUS='OPEN'";
$cases = executeQuery($q);
if (is_array($cases) and count($cases) > 0) {
for ($i = 1; $i <= count($cases); $i++) {
$caseId = $case[$i]['APP_UID'];
$caseIndex = $case[$i]['DEL_INDEX'];
$oCase = new Cases();
$aCaseInfo = $oCase->loadCase($caseId, $caseIndex);
//look up the Task Name and Process Name:
$lang = @@SYS_LANG;
$result = executeQuery("SELECT CON_VALUE FROM CONTENT WHERE CON_ID = '{$aCaseInfo['PRO_UID'] AND
'CON_CATEGORY='PRO_TITLE' AND CON_LANG='$lang'");
$processName = $result[1]['CON_VALUE'];
$result = executeQuery("SELECT CON_VALUE FROM CONTENT WHERE CON_ID = '{$aCaseInfo['TAS_UID'] AND
'CON_CATEGORY='TAS_TITLE' AND CON_LANG='$lang'");
$taskName = $result[1]['CON_VALUE'];
@=casesGrid[$i] = array(
"caseNumber" => $aCaseInfo['APP_NUMBER'],
"processName" => $processName ,
"taskName" => $taskName,
"dueDate" => $aCaseInfo['DEL_TASK_DUE_DATE'],
"linkToCase" => '',
"urlForCase" => "../cases/cases_Open?APP_UID=$caseId&DEL_INDEX=$caseIndex",
"labelForCase" => $aCaseInfo['APP_TITLE']
);
}
@=casesGrid = orderGrid(@=casesGrid, 'dueDate', 'DESC');
}