我有一个数组如下:
function example() {
/* some stuff here that pushes items with
dynamically created key strings into an array */
return array( // now lets pretend it returns the created array
'firstStringName' => $whatEver,
'secondStringName' => $somethingElse
);
}
$arr = example();
// now I know that $arr contains $arr['firstStringName'];
Run Code Online (Sandbox Code Playgroud)
我需要找出索引,$arr['firstStringName']以便我能够循环array_keys($arr)并'firstStringName'通过其索引返回键字符串.我怎样才能做到这一点?
好的,所以我需要在这个数组中抓住'blah'的位置(位置不会总是一样).例如:
$array = (
'a' => $some_content,
'b' => $more_content,
'c' => array($content),
'blah' => array($stuff),
'd' => $info,
'e' => $more_info,
);
Run Code Online (Sandbox Code Playgroud)
所以,我希望能够返回'blah'键位于数组中的位置.在这种情况下,它应该返回3.我怎么能快速做到这一点?而且不会影响$ array数组.
是否可以使用没有单引号或双引号的数组,如$ array [key]?我认为这很糟糕,因为如果我不使用单引号或双引号,PHP会先寻找常量.我的一位同事告诉我,这没关系.
你们有什么感想?
假设我的$_POST变量看起来像:
<?php
Array
(
[user_ID] => 65
[action] => editpost
[originalaction] => editpost
[post_author] => 154
[empl_bd_dd] => 6
[empl_bd_mm] => 5
[empl_bd_yy] => 1987
[empl_gen] => 1
[empl_height] => 155
[empl_weight] => 61
[empl_arra] => 2
[save] => Update
[post_it] => 2
[empl_pay] => J77
[empl_cust] => Married
[empl_lang] => Array
(
[0] => EN
[1] => FR
)
[empl_rent] => 1
[name] => Jimmy Nathan
[empl_text] => Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec …Run Code Online (Sandbox Code Playgroud) 我有一个像下面的数组
$old = array(
'a' => 'blah',
'b' => 'key',
'c' => 'amazing',
'd' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
Run Code Online (Sandbox Code Playgroud)
我有另一个数组,有密钥替换密钥信息.
$keyReplaceInfoz = array('a' => 'newA', 'b' => 'newB', 'c' => 'newC', 'd' => 'newD');
Run Code Online (Sandbox Code Playgroud)
我需要用数组$old中的相应值替换数组的所有键$keyReplaceInfo.
输出应该是这样的
$old = array(
'newA' => 'blah',
'newB' => 'key',
'newC' => 'amazing',
'newD' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
Run Code Online (Sandbox Code Playgroud)
我必须手动完成,如下所示.我期待更好的选择.有谁能建议更好的方法来实现这一目标?
$new …Run Code Online (Sandbox Code Playgroud) array_key_exists不适用于大型多维数组.对于前者
$arr = array(
'1' => 10,
'2' => array(
'21' => 21,
'22' => 22,
'23' => array(
'test' => 100,
'231' => 231
),
),
'3' => 30,
'4' => 40
);
Run Code Online (Sandbox Code Playgroud)
array_key_exists('test',$ arr)返回'false'但它适用于一些简单的数组.
我想将两个数组相互合并:
$filtered = array(1 => 'a', 3 => 'c');
$changed = array(2 => 'b*', 3 => 'c*');
Run Code Online (Sandbox Code Playgroud)
合并应包括其中所有元素的$filtered所有元素以及$changed具有相应键的所有元素$filtered:
$merged = array(1 => 'a', 3 => 'c*');
Run Code Online (Sandbox Code Playgroud)
array_merge($filtered, $changed)将增加的附加键$changed进入$filtered为好.所以它并不适合.
我知道我可以$keys = array_intersect_key($filtered, $changed)用来获取两个数组中存在的密钥,这已经是工作的一半.
但是我想知道是否有任何(本机)函数可以将$changed数组减少到具有$keys指定的数组array_intersect_key?我知道我可以使用array_filter回调函数并在$keys其中进行检查,但是可能还有一些其他纯粹的本机函数只能从一个可以指定键的数组中提取那些元素?
我问,因为本机函数通常比array_filter回调快得多.
我有一个数组像这样
$data = array(
"some" => "163",
"rand" => "630",
"om" => "43",
"words" => "924",
"as" => "4",
"keys" => "54"
);
Run Code Online (Sandbox Code Playgroud)
如何将每个集合的键与其值相关联,如下所示:
foreach ($data as $stuff){
$this->$stuff["key"] = $stuff["value"];
}
Run Code Online (Sandbox Code Playgroud) 在Javascript中,知道我可以设置一个数组,以便键是自动编号(从0开始)分配的数组:
var d_names = new Array("Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday");
// Key for Sunday is '0'
Run Code Online (Sandbox Code Playgroud)
如果我想分配密钥,我可以这样做:
var d_names={};
d_names[5]="Sunday";
d_names[6]="Monday";
d_names[7]="Tuesday";
d_names[8]="Wednesday";
d_names[9]="Thursday";
d_names[10]="Friday";
d_names[11]="Saturday";
// Key for Sunday is '5'
Run Code Online (Sandbox Code Playgroud)
但有没有像PHP中那样分配键的简写方法?
var d_names = new Array(5=>"Sunday", 6=>"Monday", 7=>"Tuesday", 8=>"Wednesday",
9=>"Thursday", 10=>"Friday", 11=>"Saturday");
// Doesn't work
Run Code Online (Sandbox Code Playgroud) 我正在使用expedia API并且它运行良好,但我不知道如何访问这种特殊类型的数组键.回复如下
$response =
stdClass Object
(
[@size] => 1
[@activePropertyCount] => 144
[city] => 1
[@hotelId] => 12345
[HotelSummary] => stdClass Object
(
[@order] => 0
[@ubsScore] => 1074874
[hotelId] => 151689
[RoomRateDetailsList] => stdClass Object
(
[RoomRateDetails] => stdClass Object
(
[roomTypeCode] => 195577
[rateCode] => 202369379
[maxRoomOccupancy] => 3
[quotedRoomOccupancy] => 2
[minGuestAge] => 0
[roomDescription] => Deluxe Room
[propertyAvailable] => 1
[propertyRestricted] =>
[expediaPropertyId] => 526332
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
我想在'city'键下访问@hotelId的值,但我不能
我试过两种类型,但两次失败都没有
$response->hotelId
and
$response->@hotelId
Run Code Online (Sandbox Code Playgroud)
请帮帮我..提前谢谢你
array-key ×10
arrays ×9
php ×9
array-merge ×1
arrayobject ×1
filter ×1
foreach ×1
javascript ×1
key ×1
shorthand ×1