我有一个关联数组和一组键.
$A = array('a'=>'book', 'b'=>'pencil', 'c'=>'pen');
$B = array('a', 'b');
Run Code Online (Sandbox Code Playgroud)
我如何从$A密钥所在的所有元素构建关联数组$B?对于上面的例子,答案应该是
$C = array('a'=>'book', 'b'=>'pencil');
Run Code Online (Sandbox Code Playgroud) 我正在尝试实例化一个关联数组,然后在第二次调用中,在一个块行上为它分配各种其他值集.我想按照与实例化相同的形式执行此操作:
"variable" = > 'value';
Run Code Online (Sandbox Code Playgroud)
我的实例是:
$post_values = array(
"x_login" => "API_LOGIN_ID",
"x_tran_key" => "TRANSACTION_KEY",
);
Run Code Online (Sandbox Code Playgroud)
我想补充一下:
"x_version" => "3.1",
"x_delim_data" => "TRUE",
"x_delim_char" => "|",
"x_relay_response" => "FALSE",
"x_state" => "WA",
"x_zip" => "98004"
Run Code Online (Sandbox Code Playgroud)
我有什么选择?也许有一个array_push用法,我不知道要更轻松地添加多个值?或者我是不是每次通话增加价值,如:
$post_values['x_version']='3.1';
....
$post_values['x_zip']='98004';
Run Code Online (Sandbox Code Playgroud)
有没有其他优雅的方法可以在一行中为关联数组添加多个值?
如果您使用php,您可以在编程语言中看到php具有关联数组(或数组宽度字符串键).例如:
$server['hostname'] = 'localhost';
$server['database'] = 'test';
$server['username'] = 'root';
$server['password'] = 'password' ;
// 2d array
$all['myserver']['hostname'] = 'localhost' ;
Run Code Online (Sandbox Code Playgroud)
但是在delphi中找不到任何默认的使用关联数组的方法.
首先,我希望找到任何输出组件或类的默认方式.第二,如果真的我无法用内部方式找到我强制只选择输出类.
我使用Delphi XE3,非常感谢您的帮助.
编辑:我在这里找到了一个类:http://www.delphipages.com/forum/showthread.php?t=26334
与php相同,但有更好的方法吗?
我想在php中创建一个带有动态键的关联数组,以及来自特定mysql表的动态值.
表名是monthly_salary与名为两列month和salary分别.
我在里面得到数据:
$sql = mysql_query('SELECT * FROM monthly_salary');
$sql2 = mysql_query('SELECT * FROM monthly_salary');
Run Code Online (Sandbox Code Playgroud)
然后分配,然后连接起来收集到的数据$mon和$sal:
$mon = "";
$sal = "";
while($row = mysql_fetch_array($sql)){
$mon .= $row['month'].", ";
}
while($row = mysql_fetch_array($sql2)){
$sal .= $row['salary'].", ";
}
Run Code Online (Sandbox Code Playgroud)
之后我将它转换为数组并连接它直到它成为关联数组:
$monArray = array(substr(trim($mon), 0, -1));
$salArray = array(substr(trim($sal), 0, -1));
$key = "";
$keyWithVal = "";
foreach($monArray as $k){
$key .= $k." => ";
}
foreach($salArray as $k){
$keyWithVal .= $key.$k.","; …Run Code Online (Sandbox Code Playgroud) 这个问题几乎总结了一下."dtrace'打印一个关联数组'"只有一个谷歌命中,类似的搜索同样没用.
编辑:
如果我要使用聚合,我不知道我仍然可以删除条目.我的申请要求我能够做以下事情:
file_descriptors[0] = "stdin"
file_descriptors[3] = "service.log"
...
...
file_descriptors[3] = 0
...
...
print_array(file_descriptors) # should print only those entries that have not been cleared.
Run Code Online (Sandbox Code Playgroud)
我知道您可以清除整个聚合,但是单个条目呢?
更新:
由于我在OS X中执行此操作并且我的应用程序是跟踪特定进程已打开的所有文件描述符,因此我能够拥有256个路径名的数组,因此:
syscall::open*:entry
/execname == $1/
{
self->path = copyinstr(arg0);
}
syscall::open*:return
/execname == $1/
{
opened[arg0] = self->path;
}
syscall::close*:entry
/execname == $1/
{
opened[arg0] = 0;
}
tick-10sec
{
printf(" 0: %s\n", opened[0]);
}
The above probe repeated 255 more times...
Run Code Online (Sandbox Code Playgroud)
太糟糕了.我真的想要有更好的东西.
当一些代码像这样:
objc_setAssociatedObject (
obj,
&key,
val,
OBJC_ASSOCIATION_RETAIN
);
Run Code Online (Sandbox Code Playgroud)
我需要打电话给相关的
objc_setAssociatedObject (
obj,
&key,
nil,
OBJC_ASSOCIATION_RETAIN
);
Run Code Online (Sandbox Code Playgroud)
释放保留值?Objective-C运行时是否在dealloc某处或某处自动释放关联引用?
我很难解释我想在这里做什么,所以如果我迷惑你就道歉...... 我自己也很困惑
我有一个像这样的数组:
$foo = array(
array('value' => 5680, 'text' => 'Red'),
array('value' => 7899, 'text' => 'Green'),
array('value' => 9968, 'text' => 'Blue'),
array('value' => 4038, 'text' => 'Yellow'),
)
Run Code Online (Sandbox Code Playgroud)
我想检查数组是否包含值,例如7899,并在上面的示例中获取链接到该值"Green"的文本.
我能够使用单个语句将文件读入常规数组:
local -a ary
readarray -t ary < $fileName
Run Code Online (Sandbox Code Playgroud)
没有发生的是将文件读入assoc.阵列.
我可以控制文件创建,因此如果可能的话,我希望尽可能简单地执行w/o循环.
因此,文件内容可以被读入:
keyname=valueInfo
Run Code Online (Sandbox Code Playgroud)
但是如果减少代码,我愿意用另一个字符串替换=,特别是在上面的单行代码中.
因此,才有可能读这样的文件到使用的东西的assoc命令阵列像until 或者from-即读入assoc命令阵列直到碰到一个字,或者我不得不这样做,因为循环的一部分吗?
这将允许我在同一个文件中保留许多类似的值,但读入单独的数组.
我也看了mapfile,但是也一样readarray.
我正在创建一个选项列表 - 从中选择 - 如下所示:
local -a arr=("${!1}")
select option in ${arr[*]}; do
echo ${option}
break
done
Run Code Online (Sandbox Code Playgroud)
工作正常 - 但是显示的列表没有排序.如果可能的话,我想对它进行分类.
希望可以将所有3个问题都归为1,因为问题是相似的 - 所有这些都在数组上.
谢谢.
关于变量的Perl 6文档指出,%sigil可以与执行Associative角色的类型一起使用.它特别提到了Pair,Hash和Map.但是,我怎样才能将一个Pair变成一个变量%?
如果我使用类型约束,我会得到一个奇怪的错误:
> my Pair %pair = Pair.new( 'a', 'b' )
Type check failed in assignment to %pair; expected Pair but got Str ("b")
in block <unit> at <unknown file> line 1
Run Code Online (Sandbox Code Playgroud)
如果我分配没有类型约束我得到一个哈希:
my %pair = Pair.new: 'a', 'b'; # Hash, not Pair
Run Code Online (Sandbox Code Playgroud)
装订工程:
my %pair := Pair.new: 'a', 'b'; # Pair
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用类型约束,我会得到另一个奇怪的错误:
> my Pair %p2 := Pair.new: 'a', 'b';
Type check failed in …Run Code Online (Sandbox Code Playgroud) 我想打印出数据,以便进行调试.
数据格式是这样的
cntryCode = resArray("COUNTRYCODE")
business = resArray("BUSINESS") ' Payer's business name.
shipToName = resArray("SHIPTONAME")
Run Code Online (Sandbox Code Playgroud)
resArray本身包含10多条记录.
我试图打印出来,但失败了.
版本1无法正常工作
public sub prArray (myarr)
Dim x, ResponseData
For x = 0 to myarr.Count
ResponseData = ResponseData & myarr.Key(x) & " = " & myarr.Item(x) & "<br>"
Next
Response.Write ResponseData
end sub
Run Code Online (Sandbox Code Playgroud)
版本2也无法正常工作
public sub prArray (myarr)
Dim x, ResponseData
For x = 0 to UBound(myarr)
ResponseData = ResponseData & myarr(x) & " = " & myarr(x) & "<br>"
Next
Response.Write ResponseData
end …Run Code Online (Sandbox Code Playgroud) associative ×10
arrays ×8
php ×4
asp-classic ×1
bash4 ×1
debugging ×1
delphi ×1
delphi-xe3 ×1
dtrace ×1
file ×1
key ×1
objective-c ×1
perl6 ×1
printing ×1
reference ×1