有人知道是否有可能返回一个关联数组作为Oracle函数的结果,如果有,你有没有任何例子?
我有一个Oracle包,其中包含一个关联数组声明,如下所示:
TYPE EVENTPARAM IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
Run Code Online (Sandbox Code Playgroud)
然后将其用于包外的存储过程,如下所示:
v_CompParams areva_interface.eventparam;
Run Code Online (Sandbox Code Playgroud)
目的是在变量v_CompParams中存储一个关联的字符串数组,从另一个包中的Parse函数返回.其定义如下:
PACKAGE STRING_MANIP
IS
TYPE a_array IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
FUNCTION Parse (v_string VARCHAR2, v_delim VARCHAR2) RETURN a_array;
FUNCTION RowCount(colln IN a_array) RETURN NUMBER;
END;
Run Code Online (Sandbox Code Playgroud)
实现此目的的代码是:
v_CompParams := STRING_MANIP.PARSE(v_CompID,v_Delim);
Run Code Online (Sandbox Code Playgroud)
不幸的是它不起作用,我得到错误'PLS-00382:表达式是错误的类型'.我愚蠢地假设,因为a_array来自与变量v_CompParams相同的源Oracle类型,所以它们之间没有问题.任何帮助非常感谢.
亲切的问候
保罗J.
我写了一个代码来解析一些东西,动态地从一个数组的数组键中生成一个数组.这是一个表单,所以奇数键有一个值,这就是问题所在.
我的代码:
//array values are not needed in my code, just junk rather
$array = array('one_a'=>2, 'three_b', 'four_c', 'five_d'=>12);
$number = array();
$letter = array();
foreach($array as $element) {
$parts = explode("_", $element);
$number[] = $parts[0];
$letter[] = $parts[1];
}
print_r($number);
Run Code Online (Sandbox Code Playgroud)
我不明白这可能会出错,但是当foreach()迭代通过关联数组时,它会将"2"和"12"作为单独的数组键读取!这会破坏我的$explode代码并抛出错误,因为"2"中没有错误_.
为什么关联数组会像这样失败?我尝试明确定义as $element => $value,不使用$ value(试图忽略它),但它会引发更多错误.
我已经完成了最终目标,但也许有一种更优雅的方式来实现这一目标.
如果我有这样的数组:
$data = array(
'wood' => 2,
'metal' => 5,
'plastic' => 3,
);
Run Code Online (Sandbox Code Playgroud)
我想从$ data获得前2个键/值对(即金属:5和塑料:3).这是我想出的:
arsort($data); //put values in order
reset($data); //set pointer to first element
$first = each($data); //assign first element to $first
array_shift($data); //remove first element from array
reset($data); //set pointer to the new first element
$second = each($data); //assign the new first element to $second
Run Code Online (Sandbox Code Playgroud) 我有一个方法,fetch_widgets从(MySQL)数据库中获取小部件.我传递了一个$options数组,所以我可以有选择地添加WHERE和JOIN子句,添加/删除列等.
例如:
$options = array();
$options[] = 'include_disabled';
$options[] = 'include_tag_ids';
$options['start_date'] = '2011-01-01';
$options['end_date'] = '2011-01-31';
Run Code Online (Sandbox Code Playgroud)
在fetch_widgets我使用以下任一方法检查选项:
if(array_key_exists('start_date',$options)) { ... }
Run Code Online (Sandbox Code Playgroud)
要么:
if(in_array('include_tag_ids',$options)) { ... }
Run Code Online (Sandbox Code Playgroud)
取决于选项是否被激活只是存在(例如include_disabled)或具有键和值(例如end_date).
我遇到了困难,因为in_array当$options数组包含键控和非键控值时,我得到了奇怪的结果.任何人都可以对此有所了解吗?
我有一个嵌套的关联数组,如下所示:
$inputTypes= array(
"natural" => array(
"text",
"password",
"textarea",
"radio",
"checkbox",
"file"
),
"hybrid" => array(
"image",
"date" ,
"url",
"email"
)
);
Run Code Online (Sandbox Code Playgroud)
我想打印其关键名称,应用如下所示的代码:
foreach ($inputTypes as $inputs){
echo key($inputTypes).'<br>';
}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个输出
hybrid
hybrid
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到每个键的名字,谢谢.
是否可以Hash在 ruby 中使用,例如
{"aaa" => 255, "abc" => 255, "acb" => 255, "dcv" => 2300, "abe" => 1}
Run Code Online (Sandbox Code Playgroud)
并把它分类成Array这样
[["dcv", 2300], ["aaa", 255], ["abc" => 255], ["acb" => 255], ["abe", 1]]
Run Code Online (Sandbox Code Playgroud)
使用sort_by方法?这种排序应该产生一个数组数组,这些数组首先按数字出现的降序排序,然后在平局上它应该按字母顺序按升序对字符串进行排序。
我有以下$_POST数组:
Array
(
[fileName] => Array
(
[0] => 8.png
[1] => 2_OnClick_OK.jpg
)
[fileLink] => Array
(
[0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
[1] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)
[Submit] => Submit File
)
Run Code Online (Sandbox Code Playgroud)
执行以下语句后,我得到了上述输出:
print_r($_POST); die; // Code to print the $_POST array
Run Code Online (Sandbox Code Playgroud)
现在从上面的$_POST数组中,我必须创建一个新的所需数组,打印后其结构如下:
Array
(
[8.png] => Array
(
[0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
)
[2_OnClick_OK.jpg]
(
[0] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)
)
Run Code Online (Sandbox Code Playgroud)
为此,我尝试了以下代码。
$request_Arr = array_combine ( $_POST['fileName'], $_POST['fileLink'] );
Run Code Online (Sandbox Code Playgroud)
执行上述代码后,如果我打印数组,$request_Arr它会打印以下输出:
Array (
[8.png] => filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
[2_OnClick_OK.jpg] => …Run Code Online (Sandbox Code Playgroud) php arrays associative-array key-value multidimensional-array
是否有一种方法Bash,使一个指针的值的关键在一个关联数组?像这样:
declare -A mapp
mapp=( ["key"]="${value}" )
for k in "${!mapp[@]}"; do
pointer="${mapp["${k}"]}" # How do I do this?
done
Run Code Online (Sandbox Code Playgroud)
通常,您不需要使用指针,但我很想知道是否有办法制作指针.
在更简单的情况下(即,对于普通/字符串变量),我会做一个像这样的指针:
pointer=b
read -p "Enter something: " b
eval pointer=\$${pointer}
Run Code Online (Sandbox Code Playgroud)
我如何为关联数组执行此操作?这不起作用(跳过strikethroughed代码):
declare -A mapp
mapp=( ["first"]="${a}" ["second"]="${b}" )
for k in "${!mapp[@]}"; do
v=mapp["${k}"]
read -p "Enter ${k}: " new
eval v=\$${v} # Doesn't work
done
Run Code Online (Sandbox Code Playgroud)
declare -A mapp
mapp=( ["first"]="${a}" ["second"]="${b}" )
for k in "${!mapp[@]}"; do
v=mapp["${k}"] …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 PHP 中创建一个多维数组,其中内部数组与以下示例 CSV 字符串 $csv 相关联:
# Results from 2015-06-16 to 2015-06-16.
date,time,label,artist,composer,album,title,duration
2015-06-16,12:00 AM,Island,U2,"Clayton- Adam,The Edge,Bono,Mullen- Larry- Jr",Songs Of Innocence,SONG FOR SOMEONE,03:46
2015-06-16,12:04 AM,Lowden Proud,"Fearing & White, Andy White, Stephen Fearing","White- Andy,Fearing- Stephen",Tea And Confidences,SECRET OF A LONG LASTING LOVE,03:10
2015-06-16,12:07 AM,Columbia,The Wallflowers,"Dylan- Jakob,Irons- Jack,Mathis- Stuart,Richling- Greg,Jaffee- Rami",Glad All Over,REBOOT THE MISSION,03:31
2015-06-16,12:10 AM,Distort Light,Bend Sinister,Moxon- Daniel,"Stories Of Brothers, Tales Of Lovers",JIMMY BROWN,03:48
Run Code Online (Sandbox Code Playgroud)
第 3+ 行格式后的实际数据行数是可变的。到目前为止我所做的是一个普通的多维数组:
$resultArray = str_getcsv($csv, PHP_EOL);//parse the rows
array_shift($resultArray);//shift out results first row: date …Run Code Online (Sandbox Code Playgroud) 我目前有一个数组如下:
Array (
[0] => Array ( [id] => 34 [another_id] => 2805 [third_id] => 1 )
[1] => Array ( [id] => 35 [another_id] => 2805 [third_id] => 1 )
[2] => Array ( [id] => 36 [another_id] => 2805 [third_id] => 1 )
[3] => Array ( [id] => 37 [another_id] => 2805 [third_id] => 1 )
[4] => Array ( [id] => 38 [another_id] => 2805 [third_id] => 1 )
[5] => Array ( [id] => 39 …Run Code Online (Sandbox Code Playgroud)