标签: associative-array

从函数返回Oracle关联数组

有人知道是否有可能返回一个关联数组作为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.

oracle plsql associative-array parameter-passing

2
推荐指数
1
解决办法
3587
查看次数

PHP:无法预测简单的关联数组

我写了一个代码来解析一些东西,动态地从一个数组的数组键中生成一个数组.这是一个表单,所以奇数键有一个值,这就是问题所在.

我的代码:

//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(试图忽略它),但它会引发更多错误.

php foreach associative-array

2
推荐指数
1
解决办法
324
查看次数

php中关联数组的前两个元素

我已经完成了最终目标,但也许有一种更优雅的方式来实现这一目标.

如果我有这样的数组:

$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)

php associative-array

2
推荐指数
1
解决办法
1825
查看次数

PHP数组:索引与键控

我有一个方法,fetch_widgets从(MySQL)数据库中获取小部件.我传递了一个$options数组,所以我可以有选择地添加WHEREJOIN子句,添加/删除列等.

例如:

    $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数组包含键控和非键控值时,我得到了奇怪的结果.任何人都可以对此有所了解吗?

php arrays indexing associative-array

2
推荐指数
1
解决办法
141
查看次数

关联数组的关键名称

我有一个嵌套的关联数组,如下所示:

$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)

我怎样才能得到每个键的名字,谢谢.

php associative-array

2
推荐指数
1
解决办法
4758
查看次数

Ruby:按键对哈希进行排序并在值上打破平局

是否可以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方法?这种排序应该产生一个数组数组,这些数组首先按数字出现的降序排序,然后在平局上它应该按字母顺序按升序对字符串进行排序。

ruby sorting associative-array

2
推荐指数
1
解决办法
758
查看次数

将多个表单输入组合成键对值数组并为值添加维度

我有以下$_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

2
推荐指数
1
解决办法
1503
查看次数

Bash - 关联数组中的值指针?

是否有一种方法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)

arrays bash pointers associative-array

2
推荐指数
1
解决办法
184
查看次数

在 PHP 中从 CSV 创建多维关联数组

我正在尝试在 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)

php csv associative-array multidimensional-array

2
推荐指数
1
解决办法
2892
查看次数

根据数组的数量循环遍历数组和输出链接

我目前有一个数组如下:

   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)

php arrays foreach loops associative-array

2
推荐指数
2
解决办法
57
查看次数