这可能是初学者的问题,但我已经阅读了较长时间的文档,我找不到任何解决方案.我以为我可以为每个维度使用implode然后将这些字符串重新组合在一起str_split以创建新的简单数组.但是我永远不知道连接模式是否也不在值中,因此在执行之后str_split我的原始值可能会中断.
combine($array1, $array2)对于多维数组中的数组是否有类似的东西?
我得到以下行的数组到字符串转换错误:
$diff = array_diff($stockist, $arr);
Run Code Online (Sandbox Code Playgroud)
这$arr是一个从JSON文件解码的数组.使用该is_array()函数,我能够验证两个参数都是数组.有人能指出我的问题
$stockist = array();
while (!feof($file_handle)) {
$line_of_text = fgetcsv($file_handle);
$query = "SELECT * FROM reorderchart WHERE medicine = '"
. trim($line_of_text[3])
. "' ORDER BY medicine";
$result = mysql_query($query);
if (trim($line_of_text[2]) - trim($line_of_text[1]) <= 0) {
while ($row = mysql_fetch_array($result)) {
$file = "results.json";
$arr = json_decode(file_get_contents($file),true);
$pharmacy = trim($row['Medicine']);
if (isset($stockist[$pharmacy])) {
$medicine = $stockist[$pharmacy];
$medicine[] = trim($row['Stockist']);
$stockist[$pharmacy] = $medicine;
} else {
$medicine = array();
$medicine[] = …Run Code Online (Sandbox Code Playgroud) 我已经在这一段时间里敲打了一会儿.
我有这个多维数组:
Array
(
[0] => Array
(
[0] => foo
[1] => bar
[2] => hello
)
[1] => Array
(
[0] => world
[1] => love
)
[2] => Array
(
[0] => stack
[1] => overflow
[2] => yep
[3] => man
)
Run Code Online (Sandbox Code Playgroud)
我需要得到这个:
Array
(
[0] => foo
[1] => bar
[2] => hello
[3] => world
[4] => love
[5] => stack
[6] => overflow
[7] => yep
[8] => man
)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我发现的所有其他解决方案都解决了具有不同键的多维数组.我的数组只使用简单的数字键.
我对我正在陈述的错误感到困惑 Array to string conversion
我很困惑的原因是我正在努力做到这一点,将数组转换为字符串,implode根据手册应该允许我将我的数组转换为字符串.那我为什么会收到错误?
var $matches是一个数组.$error_c是我想要存储字符串的var.
print_r($matches); // prints the array correctly
$error_c = implode(',', $matches);
echo $error_c;
Run Code Online (Sandbox Code Playgroud)
输出简单array并给出:
Notice: Array to string conversion in ...
Run Code Online (Sandbox Code Playgroud)
手册说明了implode — Join array elements with a string为什么我尝试这样做时会出错?
编辑:这是我得到的输出 $matches
Array ( [0] => Array ( [0] => C [1] => E [2] => R [3] => R [4] => O [5] => R [6] => C [7] => O [8] => N …Run Code Online (Sandbox Code Playgroud) FATAL ERROR未捕获错误:无法使用字符串键解压缩数组
我知道我可以简单地运行该方法fetch()两次并通过['q'],['bind']但我正在尝试使用new ...来解压缩值.我想传递这样的值:
(string) SQL, (Array) Bind Values
Run Code Online (Sandbox Code Playgroud)
但我认为它试图解包绑定值数组以及方法中的响应数组fetch().是否可以解压缩这个数组(看起来像这样:)
array(2) {
["q"]=> string(7) "example"
["bind"]=> array(1) {
["example"]=> string(3) "one"
}
}
Run Code Online (Sandbox Code Playgroud)
这是整个代码,如果你需要看看它们如何组合在一起:
class ModelController {
public static function execute($sql, $vals) {
var_dump($vals);
}
}
class ModelContainer {
private $queries = [];
public function add_model(Model $model, $name) {
$this->queries[$name] = $model;
return $this;
}
public function exec_all() {
foreach($this->queries as $q) {
ModelController::execute(...$q->fetch());
}
}
public function exec($name) {
} …Run Code Online (Sandbox Code Playgroud) 实现数据库查询后,我将获得下面的多维数组.
二维数组
Array
(
[0] => Array
(
[t1] => test1
)
[1] => Array
(
[t2] => test2
)
[2] => Array
(
[t3] => test3
)
[3] => Array
(
[t4] => test4
)
[4] => Array
(
[t5] => test5
)
)
Run Code Online (Sandbox Code Playgroud)
但我想将其转换为单维数组,如下面的格式.
一维数组
Array (
t1 => test1
t2 => test2
t3 => test3
t4 => test4
t5 => test5
)
Run Code Online (Sandbox Code Playgroud)
请帮我这样做
我想在数组中的每个元素上调用一个函数.使用a显然很容易foreach(),但是当我开始分解时,数组包含数组.有人可以帮我解决一个函数,该函数将为数组中的一组数组中的每个键 - >值对执行一些代码.理论上,深度可以是无限的,但如果递归无法工作,那么好的限制将是3次迭代(数组中的数组).
一个示例数组将是从$ _POST中获取的数组:
Array
(
[languages] => Array
(
[0] => php
[1] => mysql
[2] => inglip
)
[rates] => Array
(
[incall] => Array
(
[1hr] => 10
)
[outcall] => Array
(
[1hr] => 10
)
)
)
只是为了确保,我想要做的是运行一段代码(一个函数),它传递给数组结构中的每个"末端节点",所以在上面的例子中,当...时会调用它.
[0] => php [1] => mysql [2] => inglip [1hr] => 10 [1hr] => 10
......被发现了.
谢谢你的帮助,
詹姆士
如何从我的数组中获取值列表:
[data] => Array
(
[5] => Array
(
[0] => 19
[1] => 18
[2] => 20
)
[6] => Array
(
[0] => 28
)
)
Run Code Online (Sandbox Code Playgroud)
预期的输出结果字符串将是:19,18,20,28
谢谢!
阅读这个问题由几个数组合并和分组我得到了以下想法:当使用多级数组时,可能重复键,有一个函数可以迭代这样的数组,因为它是平的,就像
foreach(flatten($deepArray) as $key => $val)....
Run Code Online (Sandbox Code Playgroud)
任何想法怎么写flatten()?有没有标准的解决方案?
(注意,flatten()由于重复键不能简单地返回一个新数组).
我认为这已经提前了,但无法找到任何答案.如果已经回答,请通过链接指向正确的方向.
我有一个数组,我不想删除第一级标识符.我认为这有一个功能吗?
它是如何形成的例子:
[0] => Array
(
[8] => Röd
)
[1] => Array
(
[8] => Blå
)
[2] => Array
(
[6] => Bobo
)
[3] => Array
(
[8] => Grön
)
[4] => Array
(
[7] => Sten
)
[5] => Array
(
[8] => Vit
)
[6] => Array
(
[7] => Guld
)
[7] => Array
(
[6] => Lyxig
)
Run Code Online (Sandbox Code Playgroud)
我想要的是
[8] => Röd
[8] => Blå
[6] => Bobo
[8] => Grön …Run Code Online (Sandbox Code Playgroud)