【问题标题】:Echo only info - Session PHP仅回声信息 - 会话 PHP
【发布时间】:2013-08-12 18:04:42
【问题描述】:

如何仅在会话中回显人们自己添加的信息?我的脚本:

<?php
session_start();

$array = $_SESSION["wenslijst"];

if (isset($_POST["item"]) && (int)$_POST["item"] > 0)
    {
        if (!isset($_SESSION["wenslijst"]))
        {
            $_SESSION["wenslijst"] = array();
            $_SESSION["aantal"] = array();
        }

        $i = 0 ;
        while ($i < count($_SESSION["wenslijst"]) && $_SESSION["wenslijst"][$i] != $_POST["item"]) $i++;
        if ($i < count($_SESSION["wenslijst"]))
        {
            $_SESSION["aantal"][$i]++;
        }
        else 
        {
            $_SESSION["wenslijst"][] = $_POST["item"];
            $_SESSION["aantal"][] = 1;
        }
}

?>

当我添加一个产品时,我的数组看起来像这样,我只回显粗体消息:(将长代码作为我的产品特定编号)

数组 ( [0] => 数组 ( [f805862bbd430d0673f3f949249326f3] => ) )

感谢大家的帮助。

安塔尔的意思是:计数

Wenslijst 的意思是:愿望清单

【问题讨论】:

  • 我想要全部回显。当人们添加新产品时,数字会更多。
  • 使用 for 循环?或 print_r();
  • "Wenslijst (荷兰语)" 意思是愿望清单 "aantal (荷兰语)" 意思是数字或数量...旁注在编程时尽量不要将荷兰语与英语混用,这是荷兰 PHP 程序员的一个非常坏的习惯...
  • 可能是 $_SESSION["aantal"][$i]++;应该是 $_SESSION["aantal"][$i++]; ?
  • 对不起,我是这部分编码的新手。 Print_r,到底是什么?

标签: php arrays session printing echo


【解决方案1】:

我是否理解正确,您的数组看起来像这样?!

[0] => array(
    "your_super_long_product_key" => array(),
    "another_super_long_product_key" => array(),
    "awesome_super_long_product_key" => array(),
)

所以你可以像这样访问数据:

foreach(array_keys($array[0]) as $key) {
    echo $key . "\n";
}

这会给你:

your_super_long_product_key
another_super_long_product_key
awesome_super_long_product_key

要像这样循环遍历整个数组:

foreach($array as $dataset) {
    foreach(array_keys($dataset) as $key) {
        echo $key . "\n";
    }
}

【讨论】:

  • 我的数组看起来像这样: Array ( [0] => Array ( [f805862bbd430d0673f3f949249326f3] => ) [1] => Array ( [0615debdf23301012fb5b070f07c9fa5] => ) )
  • 哦,对不起。我没有看到你最新的代码。谢谢伙计,这对我有用!
  • @Henio:如果计时器到了,请考虑将此答案标记为正确答案。谢谢 :)