标签: associative-array

PHP计算布尔数组中的真值数

我有一个关联数组,我需要计算其中布尔值的数量.

最终结果是创建一个if语句,当数组中只存在一个true值时,该语句将返回true.如果数组中有多个真值,或者数组中没有真值,则需要返回false.

我知道最好的路线是以某种形式使用count和in_array.我不确定这会起作用,只是在我的头顶,但即使它确实如此,这是最好的方法吗?

$array(a->true,b->false,c->true)    

if (count(in_array(true,$array,true)) == 1)
{
    return true
}
else
{
    return false
}
Run Code Online (Sandbox Code Playgroud)

php arrays associative-array if-statement count

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

在Bash测试中,如果声明了关联数组

如何测试是否在Bash中声明了关联数组?我可以测试一个变量,如:

[ -z $FOO ] && echo nope
Run Code Online (Sandbox Code Playgroud)

但我似乎不适用于关联数组:

$unset FOO
$declare -A FOO
$[ -z $FOO ] && echo nope
nope
$FOO=([1]=foo)
$ [ -z $FOO ] && echo nope
nope
$ echo ${FOO[@]}
foo
Run Code Online (Sandbox Code Playgroud)

编辑:

谢谢你的答案,两者似乎都有效,所以我让速度决定:

$ cat test1.sh
#!/bin/bash
for i in {1..100000}; do
    size=${#array[@]}
    [ "$size" -lt 1 ] && :
done
$ time bash test1.sh #best of five

real    0m1.377s
user    0m1.357s
sys     0m0.020s
Run Code Online (Sandbox Code Playgroud)

和另外一个:

$ cat test2.sh
#!/bin/bash

for i in {1..100000}; do
    declare …
Run Code Online (Sandbox Code Playgroud)

bash associative-array

11
推荐指数
3
解决办法
3617
查看次数

Python:在循环中创建关联数组

我想创建一个从文件中读取值的关联数组.我的代码看起来像这样,但它给我一个错误,说我不能指标必须是整数.

谢谢=]

for line in open(file):
  x=prog.match(line)
  myarray[x.group(1)]=[x.group(2)]
Run Code Online (Sandbox Code Playgroud)

python associative-array

10
推荐指数
3
解决办法
3万
查看次数

获取一个Javascript关联数组?

我在Javascript中有一个关联数组对象,我只需要一部分.使用常规数组,我只使用切片来获取我需要的部分,但显然这不适用于关联数组.是否有任何内置的Javascript函数,我可以使用它只返回此对象的一部分?如果没有,那么这样做的最佳做法是什么?谢谢!

javascript arrays associative-array

10
推荐指数
1
解决办法
1万
查看次数

搜索词典键python

我想知道如何从python字典中对键执行某种索引.这本字典大约有.400,000项,所以我试图避免线性搜索.

基本上,我试图找到是否userinput在任何dict键内.

for keys in dict:
    if userinput in keys:
        DoSomething()
        break
Run Code Online (Sandbox Code Playgroud)

这将是我想要做的一个例子.有没有办法以更直接的方式搜索,没有循环?或者什么是更有效的方式.

澄清:userinput是不完全的关键是什么,例如userinput可能log的,而关键是logfile

编辑:可以在搜索之前完成的任何列表/缓存创建,预处理或组织都是可接受的.唯一需要快速的是搜索密钥.

python indexing search dictionary associative-array

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

PHP如何跟踪关联数组中的顺序?

将新值推送到索引数组时

$array[] = 'new value';
Run Code Online (Sandbox Code Playgroud)

PHP文档解释了如何在[MAX_INDEX + 1]位置添加它.

将新值推送到关联数组时

$array['key'] = 'new value';
Run Code Online (Sandbox Code Playgroud)

它的工作方式相同,但我没有在文档中看到任何解释来确认它是如何或为什么这样做的.订单似乎在我的实施中是一致的,但我怎么知道订单将保持不变?有谁知道PHP如何在后端实现这一点?

php associative-array

10
推荐指数
1
解决办法
5949
查看次数

PHP计数功能与关联数组

有人可以向我解释一下count函数如何与下面的数组一起工作吗?

我的想法是输出4的以下代码,因为那里有4个元素:

$a = array 
(
  "1" => "A",
   1=> "B",
   "C",
   2 =>"D"
);

echo count($a);
Run Code Online (Sandbox Code Playgroud)

php associative-array count

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

将元素添加到数组关联数组

将新元素添加到关联数组的所有示例都是"简单"的方式并且只有一维数组 - 我的理解问题是在数组中有数组(或者是数组中的对象?).

我有以下数组:

var test = [
            {
                value: "FirstVal",
                label: "My Label 1"
            },
            {
                value: "SecondVal",
                label: "My Label 2"
            }
           ];
Run Code Online (Sandbox Code Playgroud)

两个问题:如何从头开始生成这个关联数组(是...对象)?如何将新元素添加到现有数组?

谢谢你帮我理解javascript.

javascript associative-array

10
推荐指数
1
解决办法
4万
查看次数

如何在关联数组中使用PHP in_array?

是否有任何php函数,例如in_array,你可以通过mysql函数"mysql_fetch assoc"获得关联数组?

例如,如果我有一个如下所示的$数组:

array(0=>(array(ID=>1, name=>"Smith"), 1=>(array(ID=>2, name=>"John"))
Run Code Online (Sandbox Code Playgroud)

我能做点什么吗 in_array(key,value,array)?

或者在我的情况下,如果我正在寻找ID值为"1" in_array("ID",1,$array),.

这是我的解决方案,如果您认为这是正确的方式,请对其进行评论:

function in_assoc_array($key,$value,$array)
{
    if (empty($array))
        return false;
    else
    {
        foreach($array as $a)
        {
            if ($a[$key] == $value)
                return true;
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

php search associative-array

10
推荐指数
5
解决办法
4万
查看次数

bash中的嵌套关​​联数组

可以构造一个关联数组,其元素包含bash中的数组吗?例如,假设有一个具有以下数组:

a=(a aa)
b=(b bb bbb)
c=(c cc ccc cccc)
Run Code Online (Sandbox Code Playgroud)

可以创建一个关联数组来访问这些变量吗?例如,

declare -A letters
letters[a]=$a
letters[b]=$b
letters[c]=$c
Run Code Online (Sandbox Code Playgroud)

然后通过诸如的命令访问各个元素

letter=${letters[a]}
echo ${letter[1]}
Run Code Online (Sandbox Code Playgroud)

这种用于创建和访问关联数组元素的模拟语法不起作用.是否存在实现相同目标的有效表达式?

bash associative-array nested

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