标签: associative-array

在PHP中的一行中将关联数组转换为"id = value,id = value"的字符串

在Python中,我会做类似这样的事情,使用下面的字典(相当于php的assoc数组).

arr = {'id': '1', 'name': 'marcin', 'born': '1981-10-23'}
print ', '.join([('`%s` = "%s"') % (k,v) for k,v in arr.items()])
Run Code Online (Sandbox Code Playgroud)

要得到:

`born` = "1981-10-23", `id` = "1", `name` = "marcin"
Run Code Online (Sandbox Code Playgroud)

假设PHP数组是:

array("id"=>"1","name"=>"marcin","born"=>"1981-10-23");
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用foreach循环的情况下在PHP 5.3中获得相同的结果?

php associative-array

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

对返回新数组的php数组进行排序

我正在寻找一种可靠的标准方法来数组进行排序,将有序(关联)数组作为返回值返回.

我读过的关于返回BOOLEAN值的所有PHP.net函数,或0-1.我需要的方法是这样的:

$some_mixed_array = array( 998, 6, 430 );
function custom_sort( $array )
{ 
  // Sort it
  // return sorted array
}

custom_sort( $some_mixed_array );

// returning: array( 6, 430, 998 )
Run Code Online (Sandbox Code Playgroud)

不需要处理字符串,只需INT-s.

php arrays sorting associative-array

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

MySQLI Prepared Statement:num_rows&fetch_assoc

下面是一些写得不好且严重误解的PHP代码,没有错误检查.说实话,我正在努力让我的脑袋绕着PHP-> MySQLi函数的迷宫!有人可以提供一个示例,说明如何使用预准备语句收集关联数组中的结果,同时从$ stmt获取行数?下面的代码是我正在玩的东西.我认为让我失望的是使用$stmt后的值store_result,然后尝试收集一个关联数组,我不太清楚为什么......

$mysqli = mysqli_connect($config['host'], $config['user'], $config['pass'], $config['db']);
$stmt = $mysqli->prepare("SELECT * FROM licences WHERE generated = ?");
$stmt->bind_param('i', $core['id']);
$result = $stmt->execute();
$stmt->store_result();

if ($stmt->num_rows >= "1") {

    while($data = $result->fetch_assoc()){ 
        //Loop through results here $data[] 
    }

}else{

    echo "0 records found";

}
Run Code Online (Sandbox Code Playgroud)

我觉得有点厚颜无耻只是要求代码,但它是我的情况的工作演示,我觉得我需要最终了解实际发生了什么.太感谢了!

php mysqli associative-array prepared-statement fetch

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

Google Chrome:JavaScript关联数组,按顺序进行评估

好的,所以在网页上,我有一个JavaScript对象,我用它作为一个关联数组.当页面加载时,这在脚本块中静态存在:

var salesWeeks = {
    "200911" : ["11 / 2009", "Fiscal 2009"],
    "200910" : ["10 / 2009", "Fiscal 2009"],
    "200909" : ["09 / 2009", "Fiscal 2009"],
    "200908" : ["08 / 2009", "Fiscal 2009"],
    "200907" : ["07 / 2009", "Fiscal 2009"],
    "200906" : ["06 / 2009", "Fiscal 2009"],
    "200905" : ["05 / 2009", "Fiscal 2009"],
    "200904" : ["04 / 2009", "Fiscal 2009"],
    "200903" : ["03 / 2009", "Fiscal 2009"],
    "200902" : ["02 / 2009", "Fiscal 2009"],
    "200901" : ["01 / 2009", …
Run Code Online (Sandbox Code Playgroud)

javascript associative-array google-chrome

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

PHP关联数组 - 如何将整数视为字符串

我有一个简单的关联数组.

$a = array("a"=>"b", "c"=>"d");
Run Code Online (Sandbox Code Playgroud)

我想检查数组中是否存在键"1",例如

isset($a["1"]);
Run Code Online (Sandbox Code Playgroud)

此字符串被视为整数,因此

echo $a["1"]; //prints "d"
Run Code Online (Sandbox Code Playgroud)

如何将其作为字符串处理?

我不想使用array_key_exists或in_array,因为我的基准测试显示isset会快得多.

php arrays associative-array isset

7
推荐指数
1
解决办法
3487
查看次数

C#相当于php关联数组

我在php中定制购物车应用程序.在这个应用程序中,我必须将一些部分与另一个C#.net应用程序集成,所以我在php shoppnig购物车中使用webservice.在其中一个webservice方法中,某些值应作为关联数组传递.

$proxy = new SoapClient('www.mywebservice.com?wsdl');
$associative_array= array(
    'abc'=> 1,'def'=>0,'ghi'=>1,'jkl'=>0
    );

$proxy->call($sessionId, 'methodname', array('somevalue', $associative_array));
Run Code Online (Sandbox Code Playgroud)

在php中它的工作正常...但问题是我在使用C#.net,我怎么能用C#.net传递关联数组?我是一个php程序员,我认为C#.net中没有关联数组,有人说C#Dictionary可以使用而不是那个,但那不适用于webservice调用

C#代码是

Dictionary<string,string> map=new Dictionary<string,string>();
map.Add("abc","1");
map.Add("def","0");
object st = mgs.call(sessionid, "methodname", new object[] { "somevalue",map  });
Run Code Online (Sandbox Code Playgroud)

任何人都可以给一些建议???

php c# associative-array web-services

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

在javascript中复制关联数组?

我有以下代码用于将一个关联数组复制到其他,

<script>

var some_db = new Array();

some_db["One"] = "1";

some_db["Two"] = "2";

some_db["Three"] = "3";

var copy_db = new Array();

alert(some_db["One"]);

copy_db = some_db.slice();

alert(copy_db["One"]);


</script>
Run Code Online (Sandbox Code Playgroud)

但第二个警报说"未定义"..我在这里做错了吗?任何指针请..

javascript associative-array

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

如何在多维数组中插入新键和值?

以下是我的多维数组的输出 $csmap_data

Array
(
    [0] => Array
        (
            [cs_map_id] => 84
            [cs_subject_id] => 1
        )

    [1] => Array
        (
            [cs_map_id] => 85
            [cs_subject_id] => 5
        )

    [flag] => 1
)
Run Code Online (Sandbox Code Playgroud)

最初[flag] => 1,数组中没有键值,我将它添加到数组中$csmap_data.但我想[flag] => 1在上面两个数组元素中添加,而不是作为单独的数组元素.总之,我想要以下输出:

Array
    (
        [0] => Array
            (
                [cs_map_id] => 84
                [cs_subject_id] => 1
                [flag] => 1
            )

        [1] => Array
            (
                [cs_map_id] => 85
                [cs_subject_id] => 5
                [flag] => 1
            )
       )
Run Code Online (Sandbox Code Playgroud)

我试图实现的代码如下,但无法获得所需的输出:

if (!empty($csmap_data)) {  
                    foreach($csmap_data as $csm) { …
Run Code Online (Sandbox Code Playgroud)

php arrays associative-array multidimensional-array

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

如何循环访问多维数据和关联数组中的各种元素?PHP,JSON或XML

我正在通过API(zotero.org)检索书目数据,它类似于底部的样本(只是更复杂的样本 - 样本被打字).

我想检索一个或多个记录并在页面上显示某些值.例如,我想循环遍历每个顶级记录,并以精确格式化的引文打印数据.暂时忽略正确的围兜样式,假设我想为每个返回的记录打印出以下内容:

author1名称,author2名称,文章标题,出版物标题,密钥

这与代码不匹配,因为我显然错误地引用了键值对,并且只会弄乱它.

如果我请求JSON格式,下面的内容就像数据一样,尽管我可以请求XML数据.我不挑剔; 我尝试过使用每一个都没有运气.

[
  {
    "key": "123456",
    "state": 100,
    "data": {
      "articleTitle": "Wombat coprogenetics: enumerating a common wombat population by microsatellite analysis of faecal DNA",
      "authors": [
        {
          "firstName": "Sam C.",
          "lastName": "Smith"
        },
        {
          "firstName": "Maxine P.",
          "lastName": "Jones"
        }
      ],
      "pubTitle": "Australian Journal of Zoology",
      "tags": [
         {
          "tag": "scary"
        },
        {
          "tag": "secret rulers of the world"
        }
      ]
   }
 },
 {
   "key": "001122",
   "state": 100,
   "data": {
     "articleTitle": "WOMBAT and WOMBAT-PK: …
Run Code Online (Sandbox Code Playgroud)

php arrays json associative-array multidimensional-array

7
推荐指数
1
解决办法
156
查看次数

重复的数组键(注意:多次从__sleep()返回成员变量“ a”)

标题似乎有些愚蠢,但是我对此非常认真。今天在工作中,我遇到了无法解释的怪异的PHP行为。幸运的是,此行为已在PHP 7.4中修复,因此似乎也有人偶然发现了该行为。

我举了一个小例子来说明出了什么问题:

<?php

class A {
    private $a = 'This is $a from A';

    public $b = 'This is $b from A';

    public function __sleep(): array
    {
        var_dump(array_keys(get_object_vars($this)));

        return [];
    }
}

class B extends A
{
    public $a = 'This is $a from B';
}

$b = new B;

serialize($b);
Run Code Online (Sandbox Code Playgroud)

在此处运行此代码:https : //3v4l.org/DBt3o

这里是这里发生的事情的一点解释。我们必须同时共享一个属性的A类和B类$a。细心的读者注意到,该物业$a具有两种不同的可见性(公共,私人)。到目前为止还算不上什么。魔术发生在实例中__sleep被神奇调用的方法中serialize。我们希望拥有所有获得的对象变量,将其get_object_vars减少为仅包含键,array_keys并使用输出所有内容var_dump

我期望这样(从PHP 7.4开始发生,这是我的期望输出):

array(2) {
  [0]=>
  string(1) "b"
  [1]=>
  string(1) …
Run Code Online (Sandbox Code Playgroud)

php arrays associative-array php-internals

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