标签: associative-array

在PHP中迭代复杂的关联数组

有没有一种简单的方法可以在PHP中迭代这个结构的关联数组:

该数组$searches具有编号索引,具有4到5个关联部分.所以,我不仅需要遍历$searches[0]通过$searches[n],而且$searches[0]["part0"]通过$searches[n]["partn"].困难的部分是不同的索引具有不同数量的部分(有些可能缺少一个或两个).

想要以一种美好,整洁,易懂的方式做到这一点?

php arrays associative-array

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

用于多维数组的awk数组迭代

Awk为数组处理提供关联索引.可以迭代1维数组的元素:

例如

for(index in arr1)
  print "arr1[" index "]=" arr1[index]
Run Code Online (Sandbox Code Playgroud)

但是这种二维数组怎么做呢?下面给出的那种语法有用吗?

for(index1 in arr2)
for(index2 in arr2)
   arr2[index1,index2]     
Run Code Online (Sandbox Code Playgroud)

arrays awk associative-array

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

使用常量作为Javascript关联数组的索引

我想在JS中创建一个关联数组,但是使用定义为类的一部分的常量作为索引.

我想要这个的原因是这个类的用户可以使用常量(定义事件)来触发动作.

一些代码来说明:

STATE_NORMAL = 0;
STATE_NEW_TASK_ADDED = 0;
this.curr_state = STATE_NEW_TASK_ADDED;

this.state_machine = {
    /* Prototype:
    STATE_NAME: {
        EVENT_NAME: {
            "next_state": new_state_name,
            "action": func
        }
    }
    */

    STATE_NEW_TASK_ADDED : { // I'd like this to be a constant
        this.EVENT_NEW_TASK_ADDED_AJAX : {
            "next_state": STATE_NEW_TASK_ADDED,
            "action" : function() {console.log("new task added");},
        }
    }
}

// Public data members.
// These define the various events that can happen.
this.EVENT_NEW_TASK_ADDED_AJAX = 0;
this.EVENT_NEW_TASK_ADDED_AJAX = 1;
Run Code Online (Sandbox Code Playgroud)

我无法解决这个问题.我对JS不太好,但看起来无论我做什么,数组都是用字符串而不是常量定义的.有没有办法强制数组使用常量?

谢谢!

javascript associative-array constants

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

返回除给定键之外的所有数组元素

简单的一点,我只是想知道是否有一种干净而雄辩的方式从一个与给定键不匹配的关联数组中返回所有值?

$array = array('alpha' => 'apple', 'beta' => 'banana', 'gamma' => 'guava');

$alphaAndGamma = arrayExclude($array, array('alpha'));
$onlyBeta      = arrayExclude($array, array('alpha', 'gamma'));

function arrayExclude($array, Array $excludeKeys){
    foreach($array as $key => $value){
        if(!in_array($key, $excludeKeys)){
            $return[$key] = $value;
        }
    }
    return $return;
}
Run Code Online (Sandbox Code Playgroud)

这是我(将要)使用的,但是,是否有更清洁的实现,我可能在手册中遗漏了什么?

php associative-array

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

如何在PHP中对日期数组进行排序

我有这种格式的数组:

Array
(
    [0] => Array
        (
            [28th February, 2009] => 'bla'
        )

    [1] => Array
        (
            [19th March, 2009] => 'bla'
        )

    [2] => Array
        (
            [5th April, 2009] => 'bla'
        )

    [3] => Array
        (
            [19th April, 2009] => 'bla'
        )

    [4] => Array
        (
            [2nd May, 2009] => 'bla'
        )

) 
Run Code Online (Sandbox Code Playgroud)

我想按日期的升序排序(基于月,日和年).最好的方法是什么?

最初这些电子邮件是以MySQL日期格式提取的,因此我可以将数组置于这种状态:

Array
[
    ['2008-02-28']='some text',
    ['2008-03-06']='some text'
]
Run Code Online (Sandbox Code Playgroud)

也许当它采用这种格式时,我可以遍历它们,删除所有'-'(连字符)标记,使它们保留为整数,使用array_sort()它们进行排序并再次循环它们以对它们进行排序?如果有另一种方式,我会更喜欢这个每个用户做3个循环.

谢谢.

编辑:我也可以这样做:

$array[$index]=array('human'=>'28 Feb, 2009',
                   'db'=>'20080228',
                   'description'=>'Some text here');
Run Code Online (Sandbox Code Playgroud)

但是使用这个,有没有办法单独根据'db'元素对数组进行排序?

编辑2:更新了初始var_dump

php arrays sorting associative-array arraylist

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

用于填充javascript关联数组的高效语法

我有一个自动填充文本框,用户可以在其中键入项目代码,并需要找出该项目代码的id号在javascript中.

关联数组是我想象它应该完成的方式,但以下似乎有点长篇大论,我希望有人有更好的方法来做或简写下面的内容:

var itemIds = new Array();
itemIds["item1"] = 15;
itemIds["item2"] = 40;
itemIds["item3"] = 72;
...

function getItemId(code){
    return itemIds[code];
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays associative-array

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

在Python中验证dicts


我在python中寻找工具或示例来/如何验证字典.
例如,我有dict:

test = {'foo' : 'bar', 'nested' : {'foo1' : 'bar1', 'foo2' : 'bar2'} }
Run Code Online (Sandbox Code Playgroud)

现在我必须验证它.可以说,key的值foo必须是boolean False或非空字符串.接下来,如果key foo1具有值bar1,则该键foo2 必须在范围内为int 1..10.我写了简单的函数来做到这一点,但这不是我想要的.是的,当然,我可以测试dict中的每一个项目if..else,但如果dict有> 50个元素,那么它有点不舒服.

在Python中有没有好的工具/库?我不是在寻找解析器,只是快速有效地做到这一点.

python validation schema dictionary associative-array

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

如何在关联数组中使用PHP here-doc?

我需要通过here-doc将更多的多行文本放入PHP关联数组中.它看起来像这样:

    $data = [
      "x" => "y",
      "foo" => "bar",
      /* ... other values ... */
      "idx" = <<< EOC
data data data data
data data data data
data data data data
EOC;
      "z" => 9,
      /* ... more values ... */
    ];
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何通过here-doc将元素"idx"与多行文本放在$ data数组中.

php arrays associative-array heredoc

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

Javascript:将关联数组转换为字符串并将其转换回来的最佳方法是什么?

我有一个关联数组如下:

var AssocArray = { id:0, folder:'Next', text:'Apple' };
Run Code Online (Sandbox Code Playgroud)

现在我需要将它存储在一个数据库中,所以我想我只是将它转换为一个字符串,将它存储在数据库中,然后将其拉出数据库并稍后将其放回到javascript数组中.

问题是实际的项数和数组变量每次都不同(因此我想将它存储为一个长字符串).

将此关联数组转换为字符串的最佳方法是什么,然后反之亦然,如何将字符串转换为关联数组?

javascript arrays associative-array

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

array_filter()和array_map()之间的区别?

我查看了网络中的类似主题以及堆栈溢出,但可以清楚地了解这一点.array_map,array_walk和array_filter之间的区别

<?php
error_reporting(-1);

$arr = array(2.4, 2.6, 3.5);

print_r(array_map(function($a) {
    $a > 2.5;
},$arr));

print_r(array_filter($arr, function($a){
    return $a > 2.5;
}));

?>
Run Code Online (Sandbox Code Playgroud)

上面的代码返回一个过滤后的数组,其值大于2.5.我可以实现array_filter与...的关系array_map吗?

php arrays associative-array

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